From 28bd025b35408d8d3bdf60c2ad7241c81b30f9ff Mon Sep 17 00:00:00 2001 From: Neo <321592+Neo-Desktop@users.noreply.github.com> Date: Fri, 19 Dec 2025 05:32:19 -0800 Subject: [PATCH] Version 4.1.2 --- 404error.php | 14 + Credits.txt | 26 +- admin/convertutf8/init.php | 1 + admin/convertutf8/js/app.js | 1 + admin/convertutf8/modules/browser/archive.php | 10 +- admin/convertutf8/modules/browser/browser.php | 6 +- admin/convertutf8/readme.html | 2 +- admin/convertutf8/system/Convert/Convert.php | 126 +- admin/convertutf8/system/Db/Db.php | 36 +- admin/convertutf8/system/Output/Browser.php | 1 + admin/install/emoticons/angry@2x.png | Bin 0 -> 3909 bytes admin/install/emoticons/biggrin@2x.png | Bin 0 -> 2835 bytes admin/install/emoticons/blink@2x.png | Bin 0 -> 3115 bytes admin/install/emoticons/blush@2x.png | Bin 0 -> 4632 bytes admin/install/emoticons/cool@2x.png | Bin 0 -> 3002 bytes admin/install/emoticons/data.json | 105 +- admin/install/emoticons/dry@2x.png | Bin 0 -> 3043 bytes admin/install/emoticons/happy@2x.png | Bin 0 -> 3068 bytes admin/install/emoticons/huh@2x.png | Bin 0 -> 3162 bytes admin/install/emoticons/laugh@2x.png | Bin 0 -> 2661 bytes admin/install/emoticons/mellow@2x.png | Bin 0 -> 2963 bytes admin/install/emoticons/ohmy@2x.png | Bin 0 -> 2986 bytes admin/install/emoticons/ph34r@2x.png | Bin 0 -> 2752 bytes admin/install/emoticons/rolleyes@2x.png | Bin 0 -> 3086 bytes admin/install/emoticons/sad@2x.png | Bin 0 -> 3092 bytes admin/install/emoticons/sleep@2x.png | Bin 0 -> 3054 bytes admin/install/emoticons/smile@2x.png | Bin 0 -> 2935 bytes admin/install/emoticons/tongue@2x.png | Bin 0 -> 3242 bytes admin/install/emoticons/unsure@2x.png | Bin 0 -> 3040 bytes admin/install/emoticons/wacko@2x.png | Bin 0 -> 3013 bytes admin/install/emoticons/wink@2x.png | Bin 0 -> 3057 bytes admin/install/emoticons/wub@2x.png | Bin 0 -> 3713 bytes admin/install/eula.txt | 28 +- .../install/html/global/globalTemplate.phtml | 6 +- admin/install/html/global/healthcheck.phtml | 4 +- admin/install/js/multipleRedirect.js | 1 + admin/install/lang.php | 3 +- admin/upgrade/html/forms/queries.phtml | 3 +- .../upgrade/html/global/globalTemplate.phtml | 4 +- admin/upgrade/html/global/healthcheck.phtml | 4 +- admin/upgrade/js/multipleRedirect.js | 1 + admin/upgrade/lang.php | 14 +- applications/blog/Application.php | 2 +- applications/blog/data/acpmenu.json | 12 +- applications/blog/data/emails.xml | 8 +- applications/blog/data/javascript.xml | 2 +- applications/blog/data/lang.xml | 16 +- applications/blog/data/schema.json | 196 +- applications/blog/data/theme.xml | 370 +- applications/blog/data/versions.json | 15 +- applications/blog/data/widgets.json | 22 + .../extensions/core/ContentRouter/Blog.php | 26 +- .../extensions/core/FrontNavigation/Blogs.php | 24 +- .../blog/extensions/core/GroupForm/Blog.php | 8 +- .../blog/setup/upg_100027/upgrade.php | 2 +- .../blog/setup/upg_101001/queries.json | 26 + applications/blog/setup/upg_40000/upgrade.php | 4 +- applications/blog/sources/Blog/Blog.php | 28 +- applications/blog/sources/Blog/Feed.php | 2 +- applications/blog/sources/Entry/Comment.php | 2 +- applications/blog/sources/Entry/Entry.php | 44 +- applications/blog/widgets/blogCommentFeed.php | 58 + applications/blog/widgets/blogs.php | 146 + applications/calendar/data/emails.xml | 24 +- applications/calendar/data/javascript.xml | 22 +- applications/calendar/data/lang.xml | 5 +- applications/calendar/data/settings.json | 2 +- applications/calendar/data/theme.xml | 253 +- applications/calendar/data/versions.json | 15 +- .../core/ContentRouter/calendar.php | 16 +- .../core/FrontNavigation/Calendar.php | 24 +- .../calendar/modules/front/calendar/event.php | 16 +- .../calendar/modules/front/calendar/view.php | 22 +- .../calendar/setup/upg_32000/queries.php | 3 - .../setup/upg_32005}/index.html | 0 .../calendar/setup/upg_32005/queries.php | 4 + .../calendar/setup/upg_32005/upgrade.php | 38 + .../calendar/setup/upg_40000/upgrade.php | 2 +- .../calendar/sources/Calendar/Calendar.php | 26 +- applications/calendar/sources/Date/Date.php | 16 +- .../calendar/sources/Event/Comment.php | 33 + applications/calendar/sources/Event/Event.php | 194 +- .../calendar/sources/Event/Review.php | 17 + .../calendar/sources/Icalendar/ICSParser.php | 15 +- .../calendar/widgets/recentReviews.php | 38 +- .../calendar/widgets/upcomingEvents.php | 58 +- applications/chat/Application.php | 52 + applications/chat/data/acpmenu.json | 12 +- applications/chat/data/javascript.xml | 72 +- applications/chat/data/lang.xml | 2 +- applications/chat/data/theme.xml | 8 +- applications/chat/data/versions.json | 15 +- .../extensions/core/FrontNavigation/Chat.php | 24 +- .../extensions/core/GroupForm/ChatAccess.php | 2 +- .../extensions/core/MemberForm/ChatBanned.php | 2 +- applications/chat/hooks/tabCount.php | 2 +- applications/chat/hooks/tabCountLoad.php | 5 +- applications/chat/interface/base64/base64.js | 1 + .../chat/modules/admin/chat/settings.php | 3 +- .../chat/modules/front/chat/action.php | 6 + applications/chat/modules/front/chat/view.php | 72 +- .../chat/setup/upg_100021/upgrade.php | 2 +- applications/cms/Application.php | 123 +- applications/cms/data/acpmenu.json | 6 +- applications/cms/data/acprestrictions.json | 10 +- applications/cms/data/cms_theme.xml | 532 +- applications/cms/data/emails.xml | 8 +- applications/cms/data/javascript.xml | 789 +- applications/cms/data/lang.xml | 120 +- applications/cms/data/schema.json | 351 +- applications/cms/data/settings.json | 16 + applications/cms/data/theme.xml | 443 +- applications/cms/data/versions.json | 15 +- applications/cms/data/widgets.json | 6 +- .../extensions/core/ContentRouter/Records.php | 12 +- .../cms/extensions/core/DesignersMode/Cms.php | 3 +- .../core/EditorLocations/BlockContent.php | 6 +- .../cms/extensions/core/FileStorage/Media.php | 119 + .../extensions/core/FileStorage/Records.php | 2 +- .../extensions/core/FrontNavigation/Cms.php | 257 +- .../extensions/core/FrontNavigation/Pages.php | 178 + .../extensions/core/MemberSync/Databases.php | 12 +- .../extensions/core/OutputPlugins/Media.php | 65 + .../cms/extensions/core/Sitemap/Databases.php | 2 +- applications/cms/hooks/Output.php | 92 + applications/cms/hooks/Url.php | 2 +- applications/cms/hooks/websiteUrl.php | 39 + .../cms/interface/default/block_arrow.png | Bin 0 -> 7040 bytes .../cms/interface/external/external.js | 342 + .../cms/interface/external/external.php | 22 + .../cms/modules/admin/databases/databases.php | 122 +- .../cms/modules/admin/databases/records.php | 72 +- applications/cms/modules/admin/pages/ajax.php | 7 +- .../cms/modules/admin/pages/blocks.php | 25 +- .../cms/modules/admin/pages/media.php | 410 + applications/cms/modules/admin/pages/menu.php | 69 - .../cms/modules/admin/pages/pages.php | 20 +- .../cms/modules/admin/pages/templates.php | 308 +- .../cms/modules/front/database/ajax.php | 39 +- .../cms/modules/front/database/category.php | 45 +- .../cms/modules/front/database/index.php | 6 +- .../cms/modules/front/database/record.php | 18 +- .../cms/modules/front/pages/builder.php | 7 + applications/cms/modules/front/pages/page.php | 114 +- applications/cms/setup/upg_100010/upgrade.php | 8 + .../cms/setup/upg_100037/queries.json | 242 + .../cms/setup/upg_100044/queries.json | 10 - applications/cms/setup/upg_101000/upgrade.php | 236 + applications/cms/setup/upg_40000/options.php | 5 + applications/cms/setup/upg_40000/upgrade.php | 12 +- applications/cms/sources/Blocks/Block.php | 38 +- .../cms/sources/Categories/Categories.php | 102 +- .../cms/sources/Databases/Databases.php | 78 +- .../cms/sources/Databases/Dispatcher.php | 2 + applications/cms/sources/Fields/Fields.php | 465 +- applications/cms/sources/Media/Folder.php | 341 + applications/cms/sources/Media/Media.php | 568 + applications/cms/sources/Pages/Menu.php | 434 - applications/cms/sources/Pages/Page.php | 442 +- applications/cms/sources/Records/Comment.php | 1 + .../cms/sources/Records/CommentTopicSync.php | 40 +- applications/cms/sources/Records/Records.php | 146 +- .../cms/sources/Selector/Categories.php | 185 + .../cms/sources/Selector/Databases.php | 108 + .../cms/sources/Templates/Templates.php | 4 +- .../cms/sources/Theme/Advanced/Theme.php | 13 +- applications/cms/sources/Theme/Theme.php | 6 +- applications/cms/widgets/Database.php | 20 +- applications/cms/widgets/RecordFeed.php | 193 +- applications/cms/widgets/Wysiwyg.php | 29 +- applications/core/Application.php | 23 +- applications/core/data/acpmenu.json | 26 +- applications/core/data/acprestrictions.json | 23 +- applications/core/data/acpsearch.json | 1487 ++- .../core/data/defaults/Application.txt | 2 +- .../core/data/defaults/ControllerBlank.txt | 2 +- .../core/data/defaults/ControllerList.txt | 2 +- .../core/data/defaults/ControllerNode.txt | 2 +- applications/core/data/defaults/Task.txt | 2 +- applications/core/data/defaults/Upgrade.txt | 2 +- .../core/data/defaults/UpgradePlugin.txt | 2 +- applications/core/data/defaults/Widget.txt | 2 +- .../defaults/extensions/ContentRouter.txt | 16 +- .../defaults/extensions/FrontNavigation.txt | 12 +- .../data/defaults/extensions/GroupForm.txt | 2 +- .../data/defaults/extensions/MemberForm.txt | 2 +- .../core/data/defaults/extensions/Sitemap.txt | 5 +- applications/core/data/emails.xml | 479 +- applications/core/data/furl.json | 54 +- applications/core/data/javascript.xml | 9852 ++++++++++++----- applications/core/data/lang.xml | 717 +- applications/core/data/modules.json | 11 +- applications/core/data/schema.json | 798 +- applications/core/data/settings.json | 162 +- applications/core/data/theme.xml | 9112 ++++++++++----- applications/core/data/themesettings.json | 130 +- applications/core/data/versions.json | 15 +- applications/core/data/widgets.json | 11 + .../core/extensions/core/Build/ckeditor.php | 4 +- .../core/CommunityEnhancements/Mandrill.php | 28 +- .../CommunityEnhancements/SpamMonitoring.php | 9 +- .../extensions/core/ContentRouter/Status.php | 16 +- .../core/Dashboard/AwaitingValidation.php | 4 +- .../core/Dashboard/Registrations.php | 2 +- .../extensions/core/EditorLocations/Modcp.php | 9 + .../core/EditorLocations/Reports.php | 10 + .../extensions/core/FileStorage/Emoticons.php | 38 +- .../extensions/core/FileStorage/Profile.php | 4 +- .../extensions/core/FileStorage/Theme.php | 17 +- .../core/FrontNavigation/AllActivity.php | 85 + .../core/FrontNavigation/CustomItem.php | 172 + .../core/FrontNavigation/Guidelines.php | 82 + .../extensions/core/FrontNavigation/Menu.php | 129 + .../core/FrontNavigation/MenuButton.php | 89 + .../{Core.php => MenuHeader.php} | 52 +- .../core/FrontNavigation/MenuSeparator.php | 46 + .../core/FrontNavigation/OnlineUsers.php | 75 + .../core/FrontNavigation/Search.php | 75 + .../core/FrontNavigation/StaffDirectory.php | 75 + .../FrontNavigation/YourActivityStreams.php | 150 + .../YourActivityStreamsItem.php | 218 + .../extensions/core/GroupForm/Content.php | 50 +- .../core/GroupForm/GroupSettings.php | 2 +- .../core/extensions/core/GroupForm/Social.php | 7 +- .../extensions/core/IpAddresses/Content.php | 6 +- .../core/MemberForm/BasicInformation.php | 2 +- .../core/MemberForm/Notifications.php | 2 +- .../core/MemberForm/Preferences.php | 13 +- .../extensions/core/MemberForm/Profile.php | 4 +- .../core/MemberForm/Restrictions.php | 2 +- .../extensions/core/MemberSync/System.php | 1 + .../extensions/core/MemberSync/ipsconnect.php | 34 +- .../core/extensions/core/ModCp/Content.php | 6 +- .../core/extensions/core/ModCp/IPTools.php | 4 +- .../core/extensions/core/ModCp/Unapproved.php | 29 +- .../extensions/core/Notifications/Content.php | 12 +- .../extensions/core/Queue/MemberContent.php | 13 +- .../core/Queue/RebuildContainerCounts.php | 96 +- .../core/Queue/RebuildContentImages.php | 13 +- .../core/Queue/RebuildItemCounts.php | 13 +- .../extensions/core/Queue/RebuildItems.php | 3 +- .../core/Queue/RebuildNonContentImages.php | 10 +- .../core/Queue/RebuildNonContentPosts.php | 10 +- .../extensions/core/Queue/RebuildPosts.php | 13 +- .../core/Queue/RebuildReputationIndex.php | 11 +- .../core/Queue/RebuildSearchIndex.php | 45 +- .../core/Queue/RestoreBrokenAttachments.php | 12 +- .../core/extensions/core/Sitemap/Content.php | 6 +- .../{chat => core}/interface/buzz/buzz.min.js | 0 .../plugins/autogrow => buzz}/index.html | 0 .../interface/ckeditor/ckeditor/CHANGES.md | 279 +- .../interface/ckeditor/ckeditor/LICENSE.md | 160 +- .../ckeditor/ckeditor/build-config.js | 4 +- .../interface/ckeditor/ckeditor/ckeditor.js | 1662 +-- .../interface/ckeditor/ckeditor/config.js | 2 +- .../interface/ckeditor/ckeditor/contents.css | 2 - .../interface/ckeditor/ckeditor/lang/af.js | 2 +- .../interface/ckeditor/ckeditor/lang/ar.js | 2 +- .../interface/ckeditor/ckeditor/lang/bg.js | 2 +- .../interface/ckeditor/ckeditor/lang/bn.js | 2 +- .../interface/ckeditor/ckeditor/lang/bs.js | 2 +- .../interface/ckeditor/ckeditor/lang/ca.js | 2 +- .../interface/ckeditor/ckeditor/lang/cs.js | 2 +- .../interface/ckeditor/ckeditor/lang/cy.js | 2 +- .../interface/ckeditor/ckeditor/lang/da.js | 2 +- .../interface/ckeditor/ckeditor/lang/de.js | 2 +- .../interface/ckeditor/ckeditor/lang/el.js | 2 +- .../interface/ckeditor/ckeditor/lang/en-au.js | 2 +- .../interface/ckeditor/ckeditor/lang/en-ca.js | 2 +- .../interface/ckeditor/ckeditor/lang/en-gb.js | 2 +- .../interface/ckeditor/ckeditor/lang/en.js | 2 +- .../interface/ckeditor/ckeditor/lang/eo.js | 2 +- .../interface/ckeditor/ckeditor/lang/es.js | 2 +- .../interface/ckeditor/ckeditor/lang/et.js | 2 +- .../interface/ckeditor/ckeditor/lang/eu.js | 2 +- .../interface/ckeditor/ckeditor/lang/fa.js | 2 +- .../interface/ckeditor/ckeditor/lang/fi.js | 2 +- .../interface/ckeditor/ckeditor/lang/fo.js | 2 +- .../interface/ckeditor/ckeditor/lang/fr-ca.js | 2 +- .../interface/ckeditor/ckeditor/lang/fr.js | 2 +- .../interface/ckeditor/ckeditor/lang/gl.js | 2 +- .../interface/ckeditor/ckeditor/lang/gu.js | 2 +- .../interface/ckeditor/ckeditor/lang/he.js | 2 +- .../interface/ckeditor/ckeditor/lang/hi.js | 2 +- .../interface/ckeditor/ckeditor/lang/hr.js | 2 +- .../interface/ckeditor/ckeditor/lang/hu.js | 2 +- .../interface/ckeditor/ckeditor/lang/id.js | 2 +- .../interface/ckeditor/ckeditor/lang/is.js | 2 +- .../interface/ckeditor/ckeditor/lang/it.js | 2 +- .../interface/ckeditor/ckeditor/lang/ja.js | 2 +- .../interface/ckeditor/ckeditor/lang/ka.js | 2 +- .../interface/ckeditor/ckeditor/lang/km.js | 2 +- .../interface/ckeditor/ckeditor/lang/ko.js | 2 +- .../interface/ckeditor/ckeditor/lang/ku.js | 2 +- .../interface/ckeditor/ckeditor/lang/lt.js | 2 +- .../interface/ckeditor/ckeditor/lang/lv.js | 2 +- .../interface/ckeditor/ckeditor/lang/mk.js | 2 +- .../interface/ckeditor/ckeditor/lang/mn.js | 2 +- .../interface/ckeditor/ckeditor/lang/ms.js | 2 +- .../interface/ckeditor/ckeditor/lang/nb.js | 2 +- .../interface/ckeditor/ckeditor/lang/nl.js | 2 +- .../interface/ckeditor/ckeditor/lang/no.js | 2 +- .../interface/ckeditor/ckeditor/lang/pl.js | 2 +- .../interface/ckeditor/ckeditor/lang/pt-br.js | 2 +- .../interface/ckeditor/ckeditor/lang/pt.js | 2 +- .../interface/ckeditor/ckeditor/lang/ro.js | 2 +- .../interface/ckeditor/ckeditor/lang/ru.js | 2 +- .../interface/ckeditor/ckeditor/lang/si.js | 2 +- .../interface/ckeditor/ckeditor/lang/sk.js | 2 +- .../interface/ckeditor/ckeditor/lang/sl.js | 2 +- .../interface/ckeditor/ckeditor/lang/sq.js | 2 +- .../ckeditor/ckeditor/lang/sr-latn.js | 2 +- .../interface/ckeditor/ckeditor/lang/sr.js | 2 +- .../interface/ckeditor/ckeditor/lang/sv.js | 2 +- .../interface/ckeditor/ckeditor/lang/th.js | 2 +- .../interface/ckeditor/ckeditor/lang/tr.js | 2 +- .../interface/ckeditor/ckeditor/lang/tt.js | 2 +- .../interface/ckeditor/ckeditor/lang/ug.js | 2 +- .../interface/ckeditor/ckeditor/lang/uk.js | 2 +- .../interface/ckeditor/ckeditor/lang/vi.js | 2 +- .../interface/ckeditor/ckeditor/lang/zh-cn.js | 2 +- .../interface/ckeditor/ckeditor/lang/zh.js | 2 +- .../ckeditor/plugins/autogrow/plugin.js | 8 - .../plugins/clipboard/dialogs/paste.js | 12 +- .../plugins/dialog/samples/dialog.html | 7 +- .../images => divarea}/index.html | 0 .../plugins/divarea/samples/divarea.html | 64 + .../samples}/index.html | 0 .../{ipsattach => elementspath}/index.html | 0 .../plugins/enterkey/samples/enterkey.html | 7 +- .../plugins/fakeobjects/images/spacer.gif | Bin 43 -> 0 bytes .../icons/hidpi => htmlwriter}/index.html | 0 .../samples/assets}/index.html | 0 .../samples/assets/outputforflash}/index.html | 0 .../assets/outputforflash/outputforflash.fla | Bin 0 -> 85504 bytes .../assets/outputforflash/outputforflash.swf | Bin 0 -> 15571 bytes .../assets/outputforflash/swfobject.js | 18 + .../dialogs => htmlwriter/samples}/index.html | 0 .../htmlwriter/samples/outputforflash.html | 283 + .../htmlwriter/samples/outputhtml.html | 224 + .../ckeditor/ckeditor/plugins/icons.png | Bin 8480 -> 7867 bytes .../ckeditor/ckeditor/plugins/icons_hidpi.png | Bin 24686 -> 24612 bytes .../ckeditor/plugins/ipsattach/plugin.js | 2 - .../{link/icons => ipsautogrow}/index.html | 0 .../ckeditor/plugins/ipsautogrow/plugin.js | 2 + .../ckeditor/plugins/ipsautolink/plugin.js | 18 +- .../{link/images => ipsautosave}/index.html | 0 .../ckeditor/plugins/ipsautosave/plugin.js | 1 + .../{link => ipscode/icons/hidpi}/index.html | 0 .../plugins/ipscode/icons/hidpi/ipscode.png | Bin 0 -> 2269 bytes .../{link/lang => ipscode/icons}/index.html | 0 .../plugins/ipscode/icons/ipscode.png | Bin 0 -> 1417 bytes .../images/hidpi => ipscode}/index.html | 0 .../ckeditor/plugins/ipscode/plugin.js | 3 + .../images => ipscontextmenu}/index.html | 0 .../plugins/ipscontextmenu/lang/af.js | 1 + .../plugins/ipscontextmenu/lang/ar.js | 1 + .../plugins/ipscontextmenu/lang/bg.js | 1 + .../plugins/ipscontextmenu/lang/bn.js | 1 + .../plugins/ipscontextmenu/lang/bs.js | 1 + .../plugins/ipscontextmenu/lang/ca.js | 1 + .../plugins/ipscontextmenu/lang/cs.js | 1 + .../plugins/ipscontextmenu/lang/cy.js | 1 + .../plugins/ipscontextmenu/lang/da.js | 1 + .../plugins/ipscontextmenu/lang/de.js | 1 + .../plugins/ipscontextmenu/lang/el.js | 1 + .../plugins/ipscontextmenu/lang/en-au.js | 1 + .../plugins/ipscontextmenu/lang/en-ca.js | 1 + .../plugins/ipscontextmenu/lang/en-gb.js | 1 + .../plugins/ipscontextmenu/lang/en.js | 1 + .../plugins/ipscontextmenu/lang/eo.js | 1 + .../plugins/ipscontextmenu/lang/es.js | 1 + .../plugins/ipscontextmenu/lang/et.js | 1 + .../plugins/ipscontextmenu/lang/eu.js | 1 + .../plugins/ipscontextmenu/lang/fa.js | 1 + .../plugins/ipscontextmenu/lang/fi.js | 1 + .../plugins/ipscontextmenu/lang/fo.js | 1 + .../plugins/ipscontextmenu/lang/fr-ca.js | 1 + .../plugins/ipscontextmenu/lang/fr.js | 1 + .../plugins/ipscontextmenu/lang/gl.js | 1 + .../plugins/ipscontextmenu/lang/gu.js | 1 + .../plugins/ipscontextmenu/lang/he.js | 1 + .../plugins/ipscontextmenu/lang/hi.js | 1 + .../plugins/ipscontextmenu/lang/hr.js | 1 + .../plugins/ipscontextmenu/lang/hu.js | 1 + .../plugins/ipscontextmenu/lang/id.js | 1 + .../lang}/index.html | 0 .../plugins/ipscontextmenu/lang/is.js | 1 + .../plugins/ipscontextmenu/lang/it.js | 1 + .../plugins/ipscontextmenu/lang/ja.js | 1 + .../plugins/ipscontextmenu/lang/ka.js | 1 + .../plugins/ipscontextmenu/lang/km.js | 1 + .../plugins/ipscontextmenu/lang/ko.js | 1 + .../plugins/ipscontextmenu/lang/ku.js | 1 + .../plugins/ipscontextmenu/lang/lt.js | 1 + .../plugins/ipscontextmenu/lang/lv.js | 1 + .../plugins/ipscontextmenu/lang/mk.js | 1 + .../plugins/ipscontextmenu/lang/mn.js | 1 + .../plugins/ipscontextmenu/lang/ms.js | 1 + .../plugins/ipscontextmenu/lang/nb.js | 1 + .../plugins/ipscontextmenu/lang/nl.js | 1 + .../plugins/ipscontextmenu/lang/no.js | 1 + .../plugins/ipscontextmenu/lang/pl.js | 1 + .../plugins/ipscontextmenu/lang/pt-br.js | 1 + .../plugins/ipscontextmenu/lang/pt.js | 1 + .../plugins/ipscontextmenu/lang/ro.js | 1 + .../plugins/ipscontextmenu/lang/ru.js | 1 + .../plugins/ipscontextmenu/lang/si.js | 1 + .../plugins/ipscontextmenu/lang/sk.js | 1 + .../plugins/ipscontextmenu/lang/sl.js | 1 + .../plugins/ipscontextmenu/lang/sq.js | 1 + .../plugins/ipscontextmenu/lang/sr-latn.js | 1 + .../plugins/ipscontextmenu/lang/sr.js | 1 + .../plugins/ipscontextmenu/lang/sv.js | 1 + .../plugins/ipscontextmenu/lang/th.js | 1 + .../plugins/ipscontextmenu/lang/tr.js | 1 + .../plugins/ipscontextmenu/lang/tt.js | 1 + .../plugins/ipscontextmenu/lang/ug.js | 1 + .../plugins/ipscontextmenu/lang/uk.js | 1 + .../plugins/ipscontextmenu/lang/vi.js | 1 + .../plugins/ipscontextmenu/lang/zh-cn.js | 1 + .../plugins/ipscontextmenu/lang/zh.js | 1 + .../ckeditor/plugins/ipscontextmenu/plugin.js | 8 + .../icons/hidpi}/index.html | 0 .../plugins/ipsimage/icons/hidpi/ipsimage.png | Bin 0 -> 1745 bytes .../{pastetext => ipsimage/icons}/index.html | 0 .../plugins/ipsimage/icons/ipsimage.png | Bin 0 -> 756 bytes .../ckeditor/plugins/ipsimage/plugin.js | 6 +- .../plugins/ipslink/icons/hidpi/unlink.png | Bin 0 -> 2209 bytes .../ckeditor/plugins/ipslink/icons/unlink.png | Bin 0 -> 812 bytes .../ckeditor/plugins/ipslink/plugin.js | 8 +- .../ckeditor/plugins/ipsmentions/plugin.js | 14 +- .../ipspaste/icons/hidpi/pastetext.png | Bin 0 -> 1963 bytes .../plugins/ipspaste/icons/pastetext.png | Bin 0 -> 750 bytes .../{pbckcode/dialogs => ipspaste}/index.html | 0 .../ckeditor/plugins/ipspaste/plugin.js | 5 + .../plugins/ipsprefs/icons/hidpi/ipsprefs.png | Bin 760 -> 0 bytes .../plugins/ipsprefs/icons/ipsprefs.png | Bin 1293 -> 0 bytes .../ckeditor/plugins/ipsprefs/plugin.js | 2 - .../ckeditor/plugins/ipsquote/plugin.js | 9 +- .../{pbckcode => ipssource}/index.html | 0 .../ckeditor/plugins/ipssource/plugin.js | 1 + .../ckeditor/plugins/ipsspoiler/plugin.js | 3 +- .../{removeformat => lineutils}/index.html | 0 .../ckeditor/plugins/link/dialogs/anchor.js | 8 - .../ckeditor/plugins/link/dialogs/link.js | 36 - .../plugins/link/icons/anchor-rtl.png | Bin 765 -> 0 bytes .../ckeditor/plugins/link/icons/anchor.png | Bin 758 -> 0 bytes .../ckeditor/plugins/link/icons/link.png | Bin 615 -> 0 bytes .../ckeditor/plugins/link/icons/unlink.png | Bin 779 -> 0 bytes .../ckeditor/plugins/link/images/anchor.png | Bin 566 -> 0 bytes .../ckeditor/ckeditor/plugins/link/lang/af.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ar.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/bg.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/bn.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/bs.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ca.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/cs.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/cy.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/da.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/de.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/el.js | 4 - .../ckeditor/plugins/link/lang/en-au.js | 3 - .../ckeditor/plugins/link/lang/en-ca.js | 3 - .../ckeditor/plugins/link/lang/en-gb.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/en.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/eo.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/es.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/et.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/eu.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/fa.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/fi.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/fo.js | 4 - .../ckeditor/plugins/link/lang/fr-ca.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/fr.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/gl.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/gu.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/he.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/hi.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/hr.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/hu.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/is.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/it.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ja.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/ka.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/km.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/ko.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/ku.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/lt.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/lv.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/mk.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/mn.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ms.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/nb.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/nl.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/no.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/pl.js | 4 - .../ckeditor/plugins/link/lang/pt-br.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/pt.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ro.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ru.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/sk.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/sl.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/sq.js | 4 - .../ckeditor/plugins/link/lang/sr-latn.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/sr.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/sv.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/th.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/tr.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/ug.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/uk.js | 4 - .../ckeditor/ckeditor/plugins/link/lang/vi.js | 4 - .../ckeditor/plugins/link/lang/zh-cn.js | 3 - .../ckeditor/ckeditor/plugins/link/lang/zh.js | 3 - .../ckeditor/ckeditor/plugins/link/plugin.js | 16 - .../magicline/images/hidpi/icon-rtl.png | Bin 176 -> 0 bytes .../plugins/magicline/images/hidpi/icon.png | Bin 199 -> 0 bytes .../plugins/magicline/images/icon-rtl.png | Bin 138 -> 0 bytes .../plugins/magicline/images/icon.png | Bin 133 -> 0 bytes .../plugins/magicline/samples/magicline.html | 206 - .../plugins/{wysiwygarea => menu}/index.html | 0 .../ckeditor/ckeditor/plugins/menu/plugin.js | 17 + .../ckeditor/plugins/pbckcode/CHANGELOG.md | 23 - .../ckeditor/plugins/pbckcode/LICENSE | 201 - .../pbckcode/dialogs/PBSyntaxHighlighter.js | 2 - .../plugins/pbckcode/dialogs/pbckcode.js | 6 - .../plugins/pbckcode/dialogs/style.css | 32 - .../removeformat/icons/hidpi/removeformat.png | Bin 0 -> 2119 bytes .../removeformat/icons/removeformat.png | Bin 0 -> 871 bytes .../ckeditor/plugins/removeformat/lang/af.js | 1 + .../ckeditor/plugins/removeformat/lang/ar.js | 1 + .../ckeditor/plugins/removeformat/lang/bg.js | 1 + .../ckeditor/plugins/removeformat/lang/bn.js | 1 + .../ckeditor/plugins/removeformat/lang/bs.js | 1 + .../ckeditor/plugins/removeformat/lang/ca.js | 1 + .../ckeditor/plugins/removeformat/lang/cs.js | 1 + .../ckeditor/plugins/removeformat/lang/cy.js | 1 + .../ckeditor/plugins/removeformat/lang/da.js | 1 + .../ckeditor/plugins/removeformat/lang/de.js | 1 + .../ckeditor/plugins/removeformat/lang/el.js | 1 + .../plugins/removeformat/lang/en-au.js | 1 + .../plugins/removeformat/lang/en-ca.js | 1 + .../plugins/removeformat/lang/en-gb.js | 1 + .../ckeditor/plugins/removeformat/lang/en.js | 1 + .../ckeditor/plugins/removeformat/lang/eo.js | 1 + .../ckeditor/plugins/removeformat/lang/es.js | 1 + .../ckeditor/plugins/removeformat/lang/et.js | 1 + .../ckeditor/plugins/removeformat/lang/eu.js | 1 + .../ckeditor/plugins/removeformat/lang/fa.js | 1 + .../ckeditor/plugins/removeformat/lang/fi.js | 1 + .../ckeditor/plugins/removeformat/lang/fo.js | 1 + .../plugins/removeformat/lang/fr-ca.js | 1 + .../ckeditor/plugins/removeformat/lang/fr.js | 1 + .../ckeditor/plugins/removeformat/lang/gl.js | 1 + .../ckeditor/plugins/removeformat/lang/gu.js | 1 + .../ckeditor/plugins/removeformat/lang/he.js | 1 + .../ckeditor/plugins/removeformat/lang/hi.js | 1 + .../ckeditor/plugins/removeformat/lang/hr.js | 1 + .../ckeditor/plugins/removeformat/lang/hu.js | 1 + .../ckeditor/plugins/removeformat/lang/id.js | 1 + .../ckeditor/plugins/removeformat/lang/is.js | 1 + .../ckeditor/plugins/removeformat/lang/it.js | 1 + .../ckeditor/plugins/removeformat/lang/ja.js | 1 + .../ckeditor/plugins/removeformat/lang/ka.js | 1 + .../ckeditor/plugins/removeformat/lang/km.js | 1 + .../ckeditor/plugins/removeformat/lang/ko.js | 1 + .../ckeditor/plugins/removeformat/lang/ku.js | 1 + .../ckeditor/plugins/removeformat/lang/lt.js | 1 + .../ckeditor/plugins/removeformat/lang/lv.js | 1 + .../ckeditor/plugins/removeformat/lang/mk.js | 1 + .../ckeditor/plugins/removeformat/lang/mn.js | 1 + .../ckeditor/plugins/removeformat/lang/ms.js | 1 + .../ckeditor/plugins/removeformat/lang/nb.js | 1 + .../ckeditor/plugins/removeformat/lang/nl.js | 1 + .../ckeditor/plugins/removeformat/lang/no.js | 1 + .../ckeditor/plugins/removeformat/lang/pl.js | 1 + .../plugins/removeformat/lang/pt-br.js | 1 + .../ckeditor/plugins/removeformat/lang/pt.js | 1 + .../ckeditor/plugins/removeformat/lang/ro.js | 1 + .../ckeditor/plugins/removeformat/lang/ru.js | 1 + .../ckeditor/plugins/removeformat/lang/si.js | 1 + .../ckeditor/plugins/removeformat/lang/sk.js | 1 + .../ckeditor/plugins/removeformat/lang/sl.js | 1 + .../ckeditor/plugins/removeformat/lang/sq.js | 1 + .../plugins/removeformat/lang/sr-latn.js | 1 + .../ckeditor/plugins/removeformat/lang/sr.js | 1 + .../ckeditor/plugins/removeformat/lang/sv.js | 1 + .../ckeditor/plugins/removeformat/lang/th.js | 1 + .../ckeditor/plugins/removeformat/lang/tr.js | 1 + .../ckeditor/plugins/removeformat/lang/tt.js | 1 + .../ckeditor/plugins/removeformat/lang/ug.js | 1 + .../ckeditor/plugins/removeformat/lang/uk.js | 1 + .../ckeditor/plugins/removeformat/lang/vi.js | 1 + .../plugins/removeformat/lang/zh-cn.js | 1 + .../ckeditor/plugins/removeformat/lang/zh.js | 1 + .../ckeditor/plugins/removeformat/plugin.js | 9 + .../plugins/toolbar/samples/toolbar.html | 7 +- .../ckeditor/plugins/widget/images/handle.png | Bin 0 -> 220 bytes .../samples => widget/images}/index.html | 0 .../assets => plugins/widget}/index.html | 0 .../plugins/wysiwygarea/samples/fullpage.html | 77 - .../ckeditor/samples/assets/sample.css | 3 - .../{assets/inlineall => css}/index.html | 0 .../ckeditor/ckeditor/samples/css/samples.css | 1640 +++ .../ckeditor/samples/img/github-top.png | Bin 0 -> 383 bytes .../ckeditor/samples/img/header-bg.png | Bin 0 -> 13086 bytes .../ckeditor/samples/img/header-separator.png | Bin 0 -> 123 bytes .../{assets/outputxhtml => img}/index.html | 0 .../ckeditor/ckeditor/samples/img/logo.png | Bin 0 -> 5891 bytes .../ckeditor/samples/img/navigation-tip.png | Bin 0 -> 12029 bytes .../ckeditor/ckeditor/samples/index.html | 129 +- .../{assets/uilanguages => js}/index.html | 0 .../ckeditor/ckeditor/samples/js/sample.js | 53 + .../ckeditor/ckeditor/samples/js/sf.js | 17 + .../ckeditor/samples/{ => old}/ajax.html | 5 +- .../ckeditor/samples/{ => old}/api.html | 5 +- .../ckeditor/samples/{ => old}/appendto.html | 5 +- .../ckeditor/samples/old/assets}/index.html | 0 .../samples/old/assets/inlineall}/index.html | 0 .../{ => old}/assets/inlineall/logo.png | Bin .../old/assets/outputxhtml/index.html} | 0 .../assets/outputxhtml/outputxhtml.css | 0 .../samples/{ => old}/assets/posteddata.php | 0 .../samples/{ => old}/assets/sample.jpg | Bin .../samples/old/assets/uilanguages/index.html | 0 .../{ => old}/assets/uilanguages/languages.js | 0 .../samples/{ => old}/datafiltering.html | 111 +- .../samples/{ => old}/divreplace.html | 5 +- .../ckeditor/ckeditor/samples/old/index.html | 111 + .../ckeditor/samples/{ => old}/inlineall.html | 5 +- .../samples/{ => old}/inlinebycode.html | 5 +- .../samples/{ => old}/inlinetextarea.html | 5 +- .../ckeditor/samples/{ => old}/jquery.html | 9 +- .../ckeditor/samples/{ => old}/readonly.html | 5 +- .../samples/{ => old}/replacebyclass.html | 5 +- .../samples/{ => old}/replacebycode.html | 5 +- .../ckeditor/samples/{ => old}/sample.css | 16 +- .../ckeditor/samples/{ => old}/sample.js | 0 .../samples/{ => old}/sample_posteddata.php | 2 +- .../ckeditor/samples/{ => old}/tabindex.html | 5 +- .../ckeditor/samples/{ => old}/uicolor.html | 5 +- .../samples/{ => old}/uilanguages.html | 5 +- .../samples/{ => old}/xhtmlstyle.html | 7 +- .../toolbarconfigurator/css/fontello.css | 55 + .../toolbarconfigurator/css/index.html | 0 .../toolbarconfigurator/font/LICENSE.txt | 10 + .../toolbarconfigurator/font/config.json | 28 + .../toolbarconfigurator/font/fontello.eot | Bin 0 -> 4988 bytes .../toolbarconfigurator/font/fontello.svg | 14 + .../toolbarconfigurator/font/fontello.ttf | Bin 0 -> 4820 bytes .../toolbarconfigurator/font/fontello.woff | Bin 0 -> 2904 bytes .../toolbarconfigurator/font/index.html | 0 .../samples/toolbarconfigurator/index.html | 446 + .../js/abstracttoolbarmodifier.js | 14 + .../js/fulltoolbareditor.js | 9 + .../samples/toolbarconfigurator/js/index.html | 0 .../toolbarconfigurator/js/toolbarmodifier.js | 31 + .../js/toolbartextmodifier.js | 14 + .../lib/codemirror/LICENSE | 19 + .../lib/codemirror/codemirror.css | 325 + .../lib/codemirror/codemirror.js | 290 + .../lib/codemirror/index.html | 0 .../lib/codemirror/javascript.js | 24 + .../lib/codemirror/neo.css | 36 + .../lib/codemirror/show-hint.css | 38 + .../lib/codemirror/show-hint.js | 16 + .../toolbarconfigurator/lib/index.html | 0 .../ckeditor/ckeditor/skins/ips/contents.css | 1 - .../ckeditor/ckeditor/skins/ips/dialog.css | 6 +- .../ckeditor/ckeditor/skins/ips/dialog_ie.css | 6 +- .../ckeditor/skins/ips/dialog_ie7.css | 6 +- .../ckeditor/skins/ips/dialog_ie8.css | 6 +- .../ckeditor/skins/ips/dialog_iequirks.css | 6 +- .../ckeditor/skins/ips/dialog_opera.css | 5 - .../ckeditor/ckeditor/skins/ips/editor.css | 6 +- .../ckeditor/skins/ips/editor_gecko.css | 6 +- .../ckeditor/ckeditor/skins/ips/editor_ie.css | 6 +- .../ckeditor/skins/ips/editor_ie7.css | 6 +- .../ckeditor/skins/ips/editor_ie8.css | 6 +- .../ckeditor/skins/ips/editor_iequirks.css | 6 +- .../ckeditor/ckeditor/skins/ips/icons.png | Bin 8480 -> 7867 bytes .../ckeditor/skins/ips/icons_hidpi.png | Bin 24686 -> 24612 bytes .../ckeditor/skins/ips/images/arrow.png | Bin 261 -> 191 bytes .../ckeditor/skins/ips/images/close.png | Bin 389 -> 468 bytes .../ckeditor/skins/ips/images/hidpi/close.png | Bin 0 -> 1271 bytes .../skins/ips/images/hidpi/index.html | 0 .../skins/ips/images/hidpi/lock-open.png | Bin 0 -> 1329 bytes .../ckeditor/skins/ips/images/hidpi/lock.png | Bin 0 -> 1299 bytes .../skins/ips/images/hidpi/refresh.png | Bin 0 -> 1842 bytes .../ckeditor/skins/ips/images/lock-open.png | Bin 0 -> 349 bytes .../ckeditor/skins/ips/images/lock.png | Bin 0 -> 475 bytes .../ckeditor/skins/ips/images/mini.png | Bin 818 -> 0 bytes .../ckeditor/skins/ips/images/refresh.png | Bin 0 -> 422 bytes .../ckeditor/skins/ips/images/spinner.gif | Bin 0 -> 2984 bytes .../ckeditor/ckeditor/skins/ips/readme.md | 2 +- .../ckeditor/ckeditor/skins/ips/skin.js | 10 +- .../ckeditor/ckeditor/skins/moono/dialog.css | 2 +- .../ckeditor/skins/moono/dialog_ie.css | 2 +- .../ckeditor/skins/moono/dialog_ie7.css | 2 +- .../ckeditor/skins/moono/dialog_ie8.css | 2 +- .../ckeditor/skins/moono/dialog_iequirks.css | 2 +- .../ckeditor/skins/moono/dialog_opera.css | 5 - .../ckeditor/ckeditor/skins/moono/editor.css | 2 +- .../ckeditor/skins/moono/editor_gecko.css | 2 +- .../ckeditor/skins/moono/editor_ie.css | 2 +- .../ckeditor/skins/moono/editor_ie7.css | 2 +- .../ckeditor/skins/moono/editor_ie8.css | 2 +- .../ckeditor/skins/moono/editor_iequirks.css | 2 +- .../ckeditor/ckeditor/skins/moono/icons.png | Bin 8480 -> 7867 bytes .../ckeditor/skins/moono/icons_hidpi.png | Bin 24686 -> 24612 bytes .../ckeditor/skins/moono/images/mini.png | Bin 818 -> 0 bytes .../ckeditor/skins/moono/images/spinner.gif | Bin 0 -> 2984 bytes .../ckeditor/ckeditor/skins/moono/readme.md | 4 +- .../core/interface/codemirror/codemirror.css | 116 +- .../core/interface/codemirror/codemirror.js | 21 +- .../core/interface/font/FontAwesome.otf | Bin 93888 -> 106260 bytes .../interface/font/fontawesome-webfont.eot | Bin 60767 -> 68875 bytes .../interface/font/fontawesome-webfont.svg | 105 +- .../interface/font/fontawesome-webfont.ttf | Bin 122092 -> 138204 bytes .../interface/font/fontawesome-webfont.woff | Bin 71508 -> 81284 bytes .../interface/font/fontawesome-webfont.woff2 | Bin 56780 -> 64464 bytes applications/core/interface/font/icomoon.eot | Bin 2244 -> 2764 bytes applications/core/interface/font/icomoon.svg | 11 +- applications/core/interface/font/icomoon.ttf | Bin 2080 -> 2600 bytes applications/core/interface/font/icomoon.woff | Bin 2156 -> 2676 bytes .../core/interface/imageproxy/imageproxy.php | 32 + .../core/interface/imageproxy/index.html | 0 .../core/interface/ipsconnect/ipsconnect.php | 125 +- .../core/interface/sounds/notification.mp3 | Bin 0 -> 5088 bytes .../core/interface/sounds/success.mp3 | Bin 0 -> 12208 bytes .../admin/applications/applications.php | 40 +- .../modules/admin/applications/developer.php | 9 +- .../core/modules/admin/applications/menu.php | 358 + .../modules/admin/applications/plugins.php | 101 +- .../core/modules/admin/bulkmail/bulkmail.php | 4 +- .../core/modules/admin/customization/ajax.php | 2 +- .../modules/admin/customization/emails.php | 46 +- .../modules/admin/customization/themes.php | 140 +- .../core/modules/admin/discovery/search.php | 88 + .../core/modules/admin/discovery/streams.php | 145 + .../core/modules/admin/editor/emoticons.php | 83 +- .../core/modules/admin/editor/settings.php | 132 + .../core/modules/admin/editor/toolbar.php | 35 +- .../modules/admin/languages/languages.php | 32 +- .../core/modules/admin/members/groups.php | 2 +- .../core/modules/admin/members/ip.php | 2 +- .../core/modules/admin/members/members.php | 62 +- .../admin/membersettings/notifications.php | 9 - .../modules/admin/membersettings/ranks.php | 2 +- .../admin/membersettings/reputation.php | 21 +- .../modules/admin/membersettings/spam.php | 11 +- .../modules/admin/membersettings/warnings.php | 2 +- .../core/modules/admin/overview/dashboard.php | 47 +- .../core/modules/admin/overview/files.php | 28 +- .../admin/promotion/advertisements.php | 13 +- .../core/modules/admin/promotion/seo.php | 13 +- .../core/modules/admin/settings/advanced.php | 14 +- .../core/modules/admin/settings/email.php | 6 +- .../core/modules/admin/settings/general.php | 11 +- .../modules/admin/settings/licensekey.php | 31 +- .../core/modules/admin/settings/posting.php | 31 +- .../core/modules/admin/settings/search.php | 242 - .../core/modules/admin/settings/terms.php | 59 +- .../core/modules/admin/staff/admin.php | 6 - .../core/modules/admin/staff/moderators.php | 32 +- .../core/modules/admin/support/sql.php | 1 + .../core/modules/admin/support/support.php | 332 +- .../core/modules/admin/support/systemLogs.php | 2 +- .../core/modules/admin/system/ajax.php | 2 +- .../core/modules/admin/system/login.php | 17 +- .../core/modules/admin/system/upgrade.php | 352 + .../core/modules/front/activity/activity.php | 144 - .../core/modules/front/contact/contact.php | 5 +- .../core/modules/front/discover/streams.php | 476 + .../core/modules/front/members/profile.php | 327 +- .../modules/front/messaging/messenger.php | 34 +- .../core/modules/front/modcp/modcp.php | 4 +- .../core/modules/front/search/search.php | 361 +- .../core/modules/front/status/ajaxcreate.php | 2 +- .../core/modules/front/status/feed.php | 122 - .../core/modules/front/system/ajax.php | 86 +- .../core/modules/front/system/editor.php | 27 +- .../core/modules/front/system/followed.php | 5 +- .../core/modules/front/system/ignore.php | 5 +- .../core/modules/front/system/login.php | 14 +- .../core/modules/front/system/metatags.php | 2 +- .../modules/front/system/notifications.php | 73 +- .../core/modules/front/system/register.php | 54 +- .../core/modules/front/system/settings.php | 2 +- .../core/modules/front/system/vnc.php | 694 -- .../core/modules/front/system/vse.php | 2 +- .../core/modules/front/system/warnings.php | 2 +- .../core/modules/setup/install/license.php | 9 +- .../modules/setup/upgrade/applications.php | 2 +- .../core/modules/setup/upgrade/license.php | 111 +- .../core/modules/setup/upgrade/login.php | 12 + .../modules/setup/upgrade/systemcheck.php | 32 +- .../core/setup/upg_100003/upgrade.php | 142 +- .../core/setup/upg_100005/upgrade.php | 5 - .../core/setup/upg_100008/upgrade.php | 5 - .../core/setup/upg_100018/upgrade.php | 7 +- .../core/setup/upg_100021/upgrade.php | 29 +- .../core/setup/upg_100023/upgrade.php | 2 +- .../core/setup/upg_100038/upgrade.php | 14 + .../core/setup/upg_100041/upgrade.php | 9 +- .../core/setup/upg_100044/upgrade.php | 37 +- .../core/setup/upg_101000/options.php | 35 + .../core/setup/upg_101000/queries.json | 712 ++ .../core/setup/upg_101000/upgrade.php | 702 ++ .../core/setup/upg_101001/queries.json | 71 + .../core/setup/upg_101001/upgrade.php | 117 + .../core/setup/upg_101004/upgrade.php | 62 + .../core/setup/upg_101006/queries.json | 15 + .../core/setup/upg_101006/upgrade.php | 202 + .../core/setup/upg_101012/queries.json | 16 + applications/core/setup/upg_40000/checks.php | 4 +- .../core/setup/upg_40000/queries.json | 1776 +-- applications/core/setup/upg_40000/upgrade.php | 173 +- .../sources/Advertisement/Advertisement.php | 5 +- applications/core/sources/Followed/Table.php | 37 +- .../FrontNavigation/FrontNavigation.php | 408 + .../FrontNavigationAbstract.php | 200 + .../core/sources/Messenger/Conversation.php | 72 + .../core/sources/ProfileFields/Field.php | 37 + .../core/sources/ProfileSync/Facebook.php | 2 +- .../core/sources/ProfileSync/Google.php | 2 +- .../ProfileSync/ProfileSyncAbstract.php | 37 +- .../core/sources/ProfileSync/Twitter.php | 2 +- applications/core/sources/Setup/Install.php | 31 +- applications/core/sources/Setup/Upgrade.php | 12 +- .../core/sources/ShareLinks/Service.php | 45 +- .../core/sources/StaffDirectory/Group.php | 2 +- applications/core/sources/Statuses/Reply.php | 14 +- applications/core/sources/Statuses/Status.php | 142 +- applications/core/sources/Stream/Stream.php | 802 ++ applications/core/sources/Warnings/Reason.php | 14 +- applications/core/tasks/cleanup.php | 11 +- applications/core/tasks/clearsessions.php | 4 +- applications/core/tasks/pop.php | 4 +- applications/core/tasks/updatecheck.php | 5 + applications/core/widgets/announcements.php | 10 +- applications/core/widgets/members.php | 232 + applications/core/widgets/topContributors.php | 2 +- applications/downloads/data/emails.xml | 22 +- applications/downloads/data/javascript.xml | 10 +- applications/downloads/data/lang.xml | 12 +- applications/downloads/data/theme.xml | 538 +- applications/downloads/data/versions.json | 15 +- applications/downloads/data/widgets.json | 22 + .../core/ContentRouter/downloads.php | 16 +- .../core/FrontNavigation/Downloads.php | 24 +- .../extensions/core/GroupForm/Downloads.php | 2 +- .../core/IpAddresses/DownloadLog.php | 2 +- .../extensions/core/MemberForm/Downloads.php | 2 +- .../modules/admin/downloads/settings.php | 10 +- .../modules/admin/stats/downloaders.php | 2 +- .../downloads/modules/admin/stats/member.php | 1 + .../modules/admin/stats/submitters.php | 2 +- .../modules/front/downloads/browse.php | 6 +- .../modules/front/downloads/submit.php | 32 +- .../modules/front/downloads/view.php | 9 +- .../downloads/setup/upg_100044/upgrade.php | 27 +- .../downloads/setup/upg_101000/upgrade.php | 71 + .../downloads/sources/Category/Category.php | 28 +- .../downloads/sources/Field/Field.php | 3 + .../downloads/sources/File/Comment.php | 24 + applications/downloads/sources/File/File.php | 159 +- .../downloads/sources/File/Review.php | 18 + .../widgets/downloadsCommentFeed.php | 46 + .../downloads/widgets/downloadsReviewFeed.php | 46 + applications/forums/data/emails.xml | 8 +- applications/forums/data/javascript.xml | 14 +- applications/forums/data/lang.xml | 45 +- applications/forums/data/schema.json | 60 +- applications/forums/data/theme.xml | 577 +- applications/forums/data/versions.json | 15 +- applications/forums/data/widgets.json | 46 +- .../extensions/core/ContentRouter/Topics.php | 18 +- .../core/FrontNavigation/Forums.php | 24 +- .../core/Queue/DeleteLegacyPosts.php | 16 +- .../core/Queue/DeleteLegacyTopics.php | 16 +- .../forums/modules/front/forums/forums.php | 21 +- .../forums/modules/front/forums/topic.php | 106 +- .../forums/setup/upg_101000/upgrade.php | 37 + .../forums/setup/upg_101001/queries.json | 30 + .../forums/setup/upg_101009/upgrade.php | 107 + .../forums/setup/upg_101012/upgrade.php | 47 + .../forums/setup/upg_40000/upgrade.php | 12 +- applications/forums/sources/Forum/Forum.php | 126 +- applications/forums/sources/Topic/Post.php | 73 +- applications/forums/sources/Topic/Topic.php | 235 +- applications/forums/tasks/archive.php | 53 +- applications/forums/widgets/poll.php | 120 + applications/forums/widgets/postFeed.php | 172 +- applications/gallery/data/emails.xml | 8 +- applications/gallery/data/javascript.xml | 943 +- applications/gallery/data/lang.xml | 54 +- applications/gallery/data/schema.json | 371 + applications/gallery/data/theme.xml | 1629 ++- applications/gallery/data/versions.json | 15 +- applications/gallery/data/widgets.json | 41 +- .../extensions/core/ContentRouter/gallery.php | 18 +- .../extensions/core/CreateMenu/gallery.php | 3 +- .../core/EditorLocations/Images.php | 9 +- .../core/FrontNavigation/Gallery.php | 24 +- .../extensions/core/GroupForm/Gallery.php | 35 +- .../extensions/core/MemberForm/Images.php | 2 +- .../extensions/core/Profile/gallery.php | 10 +- .../modules/admin/gallery/settings.php | 1 + .../gallery/modules/admin/stats/bandwidth.php | 2 + .../gallery/modules/admin/stats/diskspace.php | 2 +- .../gallery/modules/front/gallery/submit.php | 1625 +-- .../gallery/modules/front/gallery/view.php | 27 +- .../gallery/setup/install/queries.json | 3 +- .../gallery/setup/upg_100042/upgrade.php | 2 +- .../gallery/setup/upg_101000/queries.json | 447 + .../gallery/setup/upg_101000/upgrade.php | 78 + .../gallery/setup/upg_101006/queries.json | 15 + .../{upg_100011 => upg_101006}/upgrade.php | 4 +- .../gallery/setup/upg_60000/upgrade.php | 9 +- applications/gallery/sources/Album/Album.php | 102 +- .../gallery/sources/Category/Category.php | 31 +- .../gallery/sources/Image/Comment.php | 20 + applications/gallery/sources/Image/Image.php | 207 +- applications/gallery/sources/Image/Review.php | 119 + applications/gallery/sources/Image/Table.php | 1 + .../gallery/widgets/recentComments.php | 31 +- .../gallery/widgets/recentImageReviews.php | 46 + applications/nexus/Application.php | 87 +- applications/nexus/data/emails.xml | 574 +- applications/nexus/data/javascript.xml | 105 +- applications/nexus/data/lang.xml | 35 +- applications/nexus/data/schema.json | 40 +- applications/nexus/data/settings.json | 16 + applications/nexus/data/theme.xml | 217 +- applications/nexus/data/versions.json | 15 +- .../core/CommunityEnhancements/EasyPost.php | 16 +- .../extensions/core/ContentRouter/Reviews.php | 18 +- .../core/FrontNavigation/Addresses.php | 76 + .../core/FrontNavigation/Alternatives.php | 76 + .../extensions/core/FrontNavigation/Cards.php | 76 + .../core/FrontNavigation/Credit.php | 77 + .../core/FrontNavigation/Donations.php | 76 + .../extensions/core/FrontNavigation/Info.php | 76 + .../core/FrontNavigation/NetworkStatus.php | 76 + .../core/FrontNavigation/Orders.php | 76 + .../core/FrontNavigation/Purchases.php | 76 + .../core/FrontNavigation/Referrals.php | 76 + .../extensions/core/FrontNavigation/Store.php | 26 +- .../core/FrontNavigation/Support.php | 28 +- .../extensions/core/IncomingEmail/Support.php | 4 - .../core/IpAddresses/CustomerHistory.php | 67 - .../extensions/core/MemberForm/Nexus.php | 2 +- .../extensions/nexus/Item/CouponDiscount.php | 8 +- applications/nexus/hooks/clientAreaLink.php | 49 +- .../nexus/interface/licenses/index.php | 2 +- .../modules/admin/customers/purchases.php | 12 +- .../nexus/modules/admin/customers/view.php | 56 +- .../nexus/modules/admin/payments/invoices.php | 2 +- .../nexus/modules/admin/payments/shipping.php | 4 +- .../nexus/modules/admin/store/coupons.php | 2 +- .../nexus/modules/admin/store/packages.php | 20 +- .../nexus/modules/front/checkout/checkout.php | 29 +- .../nexus/modules/front/clients/addresses.php | 4 +- .../modules/front/clients/alternatives.php | 4 +- .../nexus/modules/front/clients/cards.php | 4 +- .../nexus/modules/front/clients/credit.php | 2 +- .../nexus/modules/front/clients/donations.php | 2 +- .../nexus/modules/front/clients/info.php | 2 +- .../nexus/modules/front/clients/invoices.php | 4 +- .../nexus/modules/front/clients/purchases.php | 8 +- .../nexus/modules/front/clients/referrals.php | 2 +- .../nexus/modules/front/store/product.php | 29 +- .../nexus/modules/front/store/store.php | 7 +- .../nexus/setup/upg_101000/upgrade.php | 243 + .../nexus/setup/upg_101006/queries.json | 23 + .../nexus/setup/upg_101011/queries.json | 23 + .../nexus/setup/upg_40000/upgrade.php | 4 - applications/nexus/sources/Coupon/Coupon.php | 9 +- .../nexus/sources/Customer/CustomField.php | 36 + .../nexus/sources/Customer/History.php | 26 +- applications/nexus/sources/Donation/Goal.php | 29 +- .../nexus/sources/Form/StateSelect.php | 49 +- .../nexus/sources/Gateway/Gateway.php | 35 + .../nexus/sources/Gateway/Manual/Manual.php | 2 +- .../nexus/sources/Gateway/PayPal/PayPal.php | 4 +- .../nexus/sources/Invoice/Invoice.php | 29 +- applications/nexus/sources/Money/Money.php | 34 +- applications/nexus/sources/Package/Ad.php | 15 +- applications/nexus/sources/Package/Item.php | 15 + .../nexus/sources/Package/Package.php | 35 +- .../nexus/sources/Purchase/Purchase.php | 16 +- .../nexus/sources/Shipping/EasyPostRate.php | 11 +- .../nexus/sources/Shipping/FlatRate.php | 75 +- applications/nexus/sources/Shipping/Rate.php | 9 +- applications/nexus/sources/Support/Reply.php | 2 +- .../nexus/sources/Support/Request.php | 8 +- applications/nexus/sources/Support/Status.php | 16 + applications/nexus/sources/Tax/Tax.php | 2 +- .../nexus/tasks/generateRenewalInvoices.php | 70 +- datastore/index.html | 1 + init.php | 154 +- system/3rd_party/JShrink/CONTRIBUTING.md | 54 + system/3rd_party/JShrink/LICENSE | 24 + system/3rd_party/JShrink/Minifier.php | 587 + system/3rd_party/JShrink/README.md | 61 + system/3rd_party/JShrink/composer.json | 25 + system/3rd_party/JShrink/phpunit.xml.dist | 23 + system/3rd_party/pclzip/gnu-lgpl.txt | 504 + system/3rd_party/pclzip/pclzip.lib.php | 5694 ++++++++++ system/3rd_party/pclzip/readme.txt | 421 + system/Application/Application.php | 301 +- system/Application/BuilderIterator.php | 5 +- system/Application/Module.php | 2 +- system/Archive/Archive.php | 117 + system/Archive/Exception.php | 28 + system/Archive/Zip/PclZip.php | 105 + system/Archive/Zip/Zip.php | 47 + system/Archive/Zip/ZipArchive.php | 88 + system/Content/Comment.php | 93 +- system/Content/Content.php | 273 +- system/Content/Controller.php | 119 +- system/Content/Item.php | 610 +- system/Content/Review.php | 16 +- system/Content/Search/ContentFilter.php | 231 + system/Content/Search/Index.php | 93 +- system/Content/Search/Mysql/Index.php | 130 +- system/Content/Search/Mysql/Query.php | 622 +- system/Content/Search/Query.php | 221 +- system/Content/Search/Result/Content.php | 105 + system/Content/Search/Result/Custom.php | 61 + system/Content/Search/Result/Result.php | 71 + system/Content/Search/Results.php | 484 +- system/Content/Search/Sphinx/Index.php | 301 - system/Content/Search/Sphinx/Query.php | 375 - system/Content/ShareServices/Twitter.php | 2 +- system/Content/Widget.php | 113 +- system/Content/WidgetComment.php | 326 + system/CustomField/CustomField.php | 27 +- system/Data/Cache.php | 14 + system/Data/Cache/Apc.php | 2 +- system/Data/Cache/Eaccelerator.php | 127 - system/Data/Cache/Memcache.php | 5 +- system/Data/Cache/None.php | 1 + system/Data/Cache/Redis.php | 13 +- system/Data/Cache/Test.php | 1 + system/Data/Cache/Wincache.php | 2 +- system/Data/Cache/Xcache.php | 10 - system/Data/Store.php | 105 +- system/Data/Store/Database.php | 21 +- system/Data/Store/FileSystem.php | 10 +- system/DateTime/DateTime.php | 17 +- system/Db/Db.php | 90 +- system/Developer/Developer.php | 14 +- system/Dispatcher/Admin.php | 13 +- system/Dispatcher/Front.php | 91 +- system/Dispatcher/Setup.php | 5 +- system/Dispatcher/Standard.php | 25 +- system/Email/Email.php | 133 +- system/Email/Incoming.php | 10 +- system/Email/Outgoing/Smtp.php | 27 +- system/File/Amazon.php | 139 +- system/File/Database.php | 24 +- system/File/File.php | 225 +- system/File/FileSystem.php | 121 +- system/File/Ftp.php | 40 +- system/Ftp/Ftp.php | 10 +- system/Ftp/Sftp.php | 10 +- system/GeoLocation/Maps/Google.php | 13 +- system/Helpers/Chart/Dynamic.php | 8 +- system/Helpers/CoverPhoto/Controller.php | 3 +- system/Helpers/Form/Address.php | 30 +- system/Helpers/Form/Captcha.php | 1 + system/Helpers/Form/CheckboxSet.php | 2 +- system/Helpers/Form/Codemirror.php | 9 +- system/Helpers/Form/Date.php | 20 +- system/Helpers/Form/DateRange.php | 2 +- system/Helpers/Form/Editor.php | 120 +- system/Helpers/Form/Form.php | 13 +- system/Helpers/Form/FormAbstract.php | 10 +- system/Helpers/Form/Item.php | 190 + system/Helpers/Form/Member.php | 7 +- system/Helpers/Form/Node.php | 4 +- system/Helpers/Form/Number.php | 2 +- system/Helpers/Form/Select.php | 21 +- system/Helpers/Form/Text.php | 18 +- system/Helpers/Form/Upload.php | 17 +- system/Helpers/Form/Url.php | 10 +- system/Helpers/Table/Content.php | 6 +- system/Helpers/Table/Custom.php | 69 +- system/Helpers/Table/Db.php | 21 +- system/Helpers/Tree/Tree.php | 34 +- system/Helpers/Wizard/Wizard.php | 23 +- system/Http/Request/Curl.php | 20 +- system/Http/Request/Sockets.php | 12 + system/Http/Url.php | 76 +- system/Image/Gd.php | 4 +- system/Image/Image.php | 11 + system/Lang/Lang.php | 70 +- system/Login/Convert.php | 9 +- system/Login/Login.php | 12 +- system/Login/LoginAbstract.php | 22 +- system/Member/Group.php | 2 +- system/Member/Member.php | 559 +- system/Node/Controller.php | 50 +- system/Node/Model.php | 240 +- system/Notification/Notification.php | 39 +- system/Output/Javascript/Javascript.php | 95 +- system/Output/Output.php | 81 +- system/Output/Plugin/Datetime.php | 8 + system/Output/Plugin/Setting.php | 9 +- system/Output/Plugin/Truncate.php | 2 +- system/Output/Plugin/Wordbreak.php | 2 +- system/Patterns/ActiveRecord.php | 26 +- system/Plugin/Hook.php | 16 +- system/Plugin/Plugin.php | 1 + system/Poll/Poll.php | 21 +- system/Session/Admin.php | 4 +- system/Session/Front.php | 50 +- system/Sitemap/Sitemap.php | 2 +- system/Task/Task.php | 5 +- system/Text/LegacyParser.php | 63 +- system/Text/Parser.php | 376 +- system/Theme/Dev/Template.php | 5 + system/Theme/Dev/Theme.php | 28 +- system/Theme/SandboxedTemplate.php | 65 + system/Theme/Template.php | 8 +- system/Theme/Theme.php | 186 +- system/Widget/Widget.php | 50 +- system/Xml/Atom.php | 26 +- system/Xml/Rss.php | 60 +- 1131 files changed, 63658 insertions(+), 20579 deletions(-) create mode 100644 404error.php create mode 100644 admin/install/emoticons/angry@2x.png create mode 100644 admin/install/emoticons/biggrin@2x.png create mode 100644 admin/install/emoticons/blink@2x.png create mode 100644 admin/install/emoticons/blush@2x.png create mode 100644 admin/install/emoticons/cool@2x.png create mode 100644 admin/install/emoticons/dry@2x.png create mode 100644 admin/install/emoticons/happy@2x.png create mode 100644 admin/install/emoticons/huh@2x.png create mode 100644 admin/install/emoticons/laugh@2x.png create mode 100644 admin/install/emoticons/mellow@2x.png create mode 100644 admin/install/emoticons/ohmy@2x.png create mode 100644 admin/install/emoticons/ph34r@2x.png create mode 100644 admin/install/emoticons/rolleyes@2x.png create mode 100644 admin/install/emoticons/sad@2x.png create mode 100644 admin/install/emoticons/sleep@2x.png create mode 100644 admin/install/emoticons/smile@2x.png create mode 100644 admin/install/emoticons/tongue@2x.png create mode 100644 admin/install/emoticons/unsure@2x.png create mode 100644 admin/install/emoticons/wacko@2x.png create mode 100644 admin/install/emoticons/wink@2x.png create mode 100644 admin/install/emoticons/wub@2x.png create mode 100644 applications/blog/setup/upg_101001/queries.json create mode 100644 applications/blog/widgets/blogCommentFeed.php create mode 100644 applications/blog/widgets/blogs.php rename applications/{chat/interface/buzz => calendar/setup/upg_32005}/index.html (100%) create mode 100644 applications/calendar/setup/upg_32005/queries.php create mode 100644 applications/calendar/setup/upg_32005/upgrade.php create mode 100644 applications/chat/interface/base64/base64.js create mode 100644 applications/cms/extensions/core/FileStorage/Media.php create mode 100644 applications/cms/extensions/core/FrontNavigation/Pages.php create mode 100644 applications/cms/extensions/core/OutputPlugins/Media.php create mode 100644 applications/cms/hooks/Output.php create mode 100644 applications/cms/hooks/websiteUrl.php create mode 100644 applications/cms/interface/default/block_arrow.png create mode 100644 applications/cms/interface/external/external.js create mode 100644 applications/cms/interface/external/external.php create mode 100644 applications/cms/modules/admin/pages/media.php delete mode 100644 applications/cms/modules/admin/pages/menu.php create mode 100644 applications/cms/setup/upg_100037/queries.json create mode 100644 applications/cms/setup/upg_101000/upgrade.php create mode 100644 applications/cms/sources/Media/Folder.php create mode 100644 applications/cms/sources/Media/Media.php delete mode 100644 applications/cms/sources/Pages/Menu.php create mode 100644 applications/cms/sources/Selector/Categories.php create mode 100644 applications/cms/sources/Selector/Databases.php create mode 100644 applications/core/extensions/core/FrontNavigation/AllActivity.php create mode 100644 applications/core/extensions/core/FrontNavigation/CustomItem.php create mode 100644 applications/core/extensions/core/FrontNavigation/Guidelines.php create mode 100644 applications/core/extensions/core/FrontNavigation/Menu.php create mode 100644 applications/core/extensions/core/FrontNavigation/MenuButton.php rename applications/core/extensions/core/FrontNavigation/{Core.php => MenuHeader.php} (64%) create mode 100644 applications/core/extensions/core/FrontNavigation/MenuSeparator.php create mode 100644 applications/core/extensions/core/FrontNavigation/OnlineUsers.php create mode 100644 applications/core/extensions/core/FrontNavigation/Search.php create mode 100644 applications/core/extensions/core/FrontNavigation/StaffDirectory.php create mode 100644 applications/core/extensions/core/FrontNavigation/YourActivityStreams.php create mode 100644 applications/core/extensions/core/FrontNavigation/YourActivityStreamsItem.php rename applications/{chat => core}/interface/buzz/buzz.min.js (100%) rename applications/core/interface/{ckeditor/ckeditor/plugins/autogrow => buzz}/index.html (100%) delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/autogrow/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{fakeobjects/images => divarea}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/divarea/samples/divarea.html rename applications/core/interface/ckeditor/ckeditor/plugins/{fakeobjects => divarea/samples}/index.html (100%) rename applications/core/interface/ckeditor/ckeditor/plugins/{ipsattach => elementspath}/index.html (100%) delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/fakeobjects/images/spacer.gif rename applications/core/interface/ckeditor/ckeditor/plugins/{ipsprefs/icons/hidpi => htmlwriter}/index.html (100%) rename applications/core/interface/ckeditor/ckeditor/plugins/{ipsprefs/icons => htmlwriter/samples/assets}/index.html (100%) rename applications/core/interface/ckeditor/ckeditor/plugins/{ipsprefs => htmlwriter/samples/assets/outputforflash}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js rename applications/core/interface/ckeditor/ckeditor/plugins/{link/dialogs => htmlwriter/samples}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/htmlwriter/samples/outputforflash.html create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/htmlwriter/samples/outputhtml.html delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsattach/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{link/icons => ipsautogrow}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsautogrow/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{link/images => ipsautosave}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsautosave/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{link => ipscode/icons/hidpi}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscode/icons/hidpi/ipscode.png rename applications/core/interface/ckeditor/ckeditor/plugins/{link/lang => ipscode/icons}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscode/icons/ipscode.png rename applications/core/interface/ckeditor/ckeditor/plugins/{magicline/images/hidpi => ipscode}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscode/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{magicline/images => ipscontextmenu}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/af.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ar.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/bg.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/bn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/bs.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/cs.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/cy.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/da.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/de.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/el.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/en-au.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/en-ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/en-gb.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/en.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/eo.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/es.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/et.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/eu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/fa.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/fi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/fo.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/fr-ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/fr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/gl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/gu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/he.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/hi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/hr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/hu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/id.js rename applications/core/interface/ckeditor/ckeditor/plugins/{magicline => ipscontextmenu/lang}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/is.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/it.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ja.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ka.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/km.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ko.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ku.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/lt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/lv.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/mk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/mn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ms.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/nb.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/nl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/no.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/pl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/pt-br.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/pt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ro.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ru.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/si.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sq.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sr-latn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/sv.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/th.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/tr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/tt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/ug.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/uk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/vi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/zh-cn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/lang/zh.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipscontextmenu/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{magicline/samples => ipsimage/icons/hidpi}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsimage/icons/hidpi/ipsimage.png rename applications/core/interface/ckeditor/ckeditor/plugins/{pastetext => ipsimage/icons}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsimage/icons/ipsimage.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipslink/icons/hidpi/unlink.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipslink/icons/unlink.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipspaste/icons/hidpi/pastetext.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipspaste/icons/pastetext.png rename applications/core/interface/ckeditor/ckeditor/plugins/{pbckcode/dialogs => ipspaste}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipspaste/plugin.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsprefs/icons/hidpi/ipsprefs.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsprefs/icons/ipsprefs.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipsprefs/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{pbckcode => ipssource}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/ipssource/plugin.js rename applications/core/interface/ckeditor/ckeditor/plugins/{removeformat => lineutils}/index.html (100%) delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/dialogs/anchor.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/dialogs/link.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/icons/anchor-rtl.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/icons/anchor.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/icons/link.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/icons/unlink.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/images/anchor.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/af.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ar.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/bg.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/bn.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/bs.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ca.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/cs.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/cy.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/da.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/de.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/el.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/en-au.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/en-ca.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/en-gb.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/en.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/eo.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/es.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/et.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/eu.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/fa.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/fi.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/fo.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/fr-ca.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/fr.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/gl.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/gu.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/he.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/hi.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/hr.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/hu.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/is.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/it.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ja.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ka.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/km.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ko.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ku.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/lt.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/lv.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/mk.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/mn.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ms.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/nb.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/nl.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/no.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/pl.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/pt-br.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/pt.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ro.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ru.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sk.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sl.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sq.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sr-latn.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sr.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/sv.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/th.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/tr.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/ug.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/uk.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/vi.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/zh-cn.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/lang/zh.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/link/plugin.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/magicline/images/icon-rtl.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/magicline/images/icon.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/magicline/samples/magicline.html rename applications/core/interface/ckeditor/ckeditor/plugins/{wysiwygarea => menu}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/menu/plugin.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/pbckcode/CHANGELOG.md delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/pbckcode/LICENSE delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/pbckcode/dialogs/PBSyntaxHighlighter.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/pbckcode/dialogs/pbckcode.js delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/pbckcode/dialogs/style.css create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/icons/hidpi/removeformat.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/icons/removeformat.png create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/af.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ar.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/bg.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/bn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/bs.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/cs.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/cy.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/da.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/de.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/el.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/en-au.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/en-ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/en-gb.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/en.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/eo.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/es.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/et.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/eu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/fa.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/fi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/fo.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/fr-ca.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/fr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/gl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/gu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/he.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/hi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/hr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/hu.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/id.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/is.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/it.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ja.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ka.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/km.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ko.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ku.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/lt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/lv.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/mk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/mn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ms.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/nb.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/nl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/no.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/pl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/pt-br.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/pt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ro.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ru.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/si.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sl.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sq.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sr-latn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/sv.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/th.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/tr.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/tt.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/ug.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/uk.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/vi.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/zh-cn.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/lang/zh.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/removeformat/plugin.js create mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/widget/images/handle.png rename applications/core/interface/ckeditor/ckeditor/plugins/{wysiwygarea/samples => widget/images}/index.html (100%) rename applications/core/interface/ckeditor/ckeditor/{samples/assets => plugins/widget}/index.html (100%) delete mode 100644 applications/core/interface/ckeditor/ckeditor/plugins/wysiwygarea/samples/fullpage.html delete mode 100644 applications/core/interface/ckeditor/ckeditor/samples/assets/sample.css rename applications/core/interface/ckeditor/ckeditor/samples/{assets/inlineall => css}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/css/samples.css create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/img/github-top.png create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/img/header-bg.png create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/img/header-separator.png rename applications/core/interface/ckeditor/ckeditor/samples/{assets/outputxhtml => img}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/img/logo.png create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/img/navigation-tip.png rename applications/core/interface/ckeditor/ckeditor/samples/{assets/uilanguages => js}/index.html (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/js/sample.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/js/sf.js rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/ajax.html (88%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/api.html (93%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/appendto.html (87%) rename applications/core/{modules/front/activity => interface/ckeditor/ckeditor/samples/old/assets}/index.html (100%) rename {system/Content/Search/Sphinx => applications/core/interface/ckeditor/ckeditor/samples/old/assets/inlineall}/index.html (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/assets/inlineall/logo.png (100%) rename applications/core/interface/ckeditor/ckeditor/{skins/moono/contents.css => samples/old/assets/outputxhtml/index.html} (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/assets/outputxhtml/outputxhtml.css (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/assets/posteddata.php (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/assets/sample.jpg (100%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/old/assets/uilanguages/index.html rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/assets/uilanguages/languages.js (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/datafiltering.html (72%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/divreplace.html (92%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/old/index.html rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/inlineall.html (94%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/inlinebycode.html (94%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/inlinetextarea.html (92%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/jquery.html (94%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/readonly.html (89%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/replacebyclass.html (96%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/replacebycode.html (95%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/sample.css (87%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/sample.js (100%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/sample_posteddata.php (85%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/tabindex.html (86%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/uicolor.html (88%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/uilanguages.html (91%) rename applications/core/interface/ckeditor/ckeditor/samples/{ => old}/xhtmlstyle.html (92%) create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/css/fontello.css create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/css/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/config.json create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/fontello.eot create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/fontello.svg create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/fontello.woff create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/font/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/js/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js create mode 100644 applications/core/interface/ckeditor/ckeditor/samples/toolbarconfigurator/lib/index.html delete mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/contents.css delete mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/dialog_opera.css create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/hidpi/close.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/hidpi/index.html create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/hidpi/lock-open.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/hidpi/lock.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/hidpi/refresh.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/lock-open.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/lock.png delete mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/mini.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/refresh.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/ips/images/spinner.gif delete mode 100644 applications/core/interface/ckeditor/ckeditor/skins/moono/dialog_opera.css delete mode 100644 applications/core/interface/ckeditor/ckeditor/skins/moono/images/mini.png create mode 100644 applications/core/interface/ckeditor/ckeditor/skins/moono/images/spinner.gif create mode 100644 applications/core/interface/imageproxy/imageproxy.php create mode 100644 applications/core/interface/imageproxy/index.html create mode 100644 applications/core/interface/sounds/notification.mp3 create mode 100644 applications/core/interface/sounds/success.mp3 create mode 100644 applications/core/modules/admin/applications/menu.php create mode 100644 applications/core/modules/admin/discovery/search.php create mode 100644 applications/core/modules/admin/discovery/streams.php create mode 100644 applications/core/modules/admin/editor/settings.php delete mode 100644 applications/core/modules/admin/settings/search.php create mode 100644 applications/core/modules/admin/system/upgrade.php delete mode 100644 applications/core/modules/front/activity/activity.php create mode 100644 applications/core/modules/front/discover/streams.php delete mode 100644 applications/core/modules/front/status/feed.php delete mode 100644 applications/core/modules/front/system/vnc.php create mode 100644 applications/core/setup/upg_101000/options.php create mode 100644 applications/core/setup/upg_101000/queries.json create mode 100644 applications/core/setup/upg_101000/upgrade.php create mode 100644 applications/core/setup/upg_101001/queries.json create mode 100644 applications/core/setup/upg_101001/upgrade.php create mode 100644 applications/core/setup/upg_101004/upgrade.php create mode 100644 applications/core/setup/upg_101006/queries.json create mode 100644 applications/core/setup/upg_101006/upgrade.php create mode 100644 applications/core/setup/upg_101012/queries.json create mode 100644 applications/core/sources/FrontNavigation/FrontNavigation.php create mode 100644 applications/core/sources/FrontNavigation/FrontNavigationAbstract.php create mode 100644 applications/core/sources/Stream/Stream.php create mode 100644 applications/core/widgets/members.php create mode 100644 applications/downloads/setup/upg_101000/upgrade.php create mode 100644 applications/downloads/widgets/downloadsCommentFeed.php create mode 100644 applications/downloads/widgets/downloadsReviewFeed.php create mode 100644 applications/forums/setup/upg_101000/upgrade.php create mode 100644 applications/forums/setup/upg_101001/queries.json create mode 100644 applications/forums/setup/upg_101009/upgrade.php create mode 100644 applications/forums/setup/upg_101012/upgrade.php create mode 100644 applications/forums/widgets/poll.php create mode 100644 applications/gallery/setup/upg_101000/queries.json create mode 100644 applications/gallery/setup/upg_101000/upgrade.php create mode 100644 applications/gallery/setup/upg_101006/queries.json rename applications/gallery/setup/{upg_100011 => upg_101006}/upgrade.php (96%) create mode 100644 applications/gallery/sources/Image/Review.php create mode 100644 applications/gallery/widgets/recentImageReviews.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Addresses.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Alternatives.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Cards.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Credit.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Donations.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Info.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/NetworkStatus.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Orders.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Purchases.php create mode 100644 applications/nexus/extensions/core/FrontNavigation/Referrals.php delete mode 100644 applications/nexus/extensions/core/IpAddresses/CustomerHistory.php create mode 100644 applications/nexus/setup/upg_101000/upgrade.php create mode 100644 applications/nexus/setup/upg_101006/queries.json create mode 100644 applications/nexus/setup/upg_101011/queries.json create mode 100644 system/3rd_party/JShrink/CONTRIBUTING.md create mode 100644 system/3rd_party/JShrink/LICENSE create mode 100644 system/3rd_party/JShrink/Minifier.php create mode 100644 system/3rd_party/JShrink/README.md create mode 100644 system/3rd_party/JShrink/composer.json create mode 100644 system/3rd_party/JShrink/phpunit.xml.dist create mode 100644 system/3rd_party/pclzip/gnu-lgpl.txt create mode 100644 system/3rd_party/pclzip/pclzip.lib.php create mode 100644 system/3rd_party/pclzip/readme.txt create mode 100644 system/Archive/Archive.php create mode 100644 system/Archive/Exception.php create mode 100644 system/Archive/Zip/PclZip.php create mode 100644 system/Archive/Zip/Zip.php create mode 100644 system/Archive/Zip/ZipArchive.php create mode 100644 system/Content/Search/ContentFilter.php create mode 100644 system/Content/Search/Result/Content.php create mode 100644 system/Content/Search/Result/Custom.php create mode 100644 system/Content/Search/Result/Result.php delete mode 100644 system/Content/Search/Sphinx/Index.php delete mode 100644 system/Content/Search/Sphinx/Query.php create mode 100644 system/Content/WidgetComment.php delete mode 100644 system/Data/Cache/Eaccelerator.php create mode 100644 system/Helpers/Form/Item.php create mode 100644 system/Theme/SandboxedTemplate.php diff --git a/404error.php b/404error.php new file mode 100644 index 00000000..ac35a47a --- /dev/null +++ b/404error.php @@ -0,0 +1,14 @@ + + 404 Not Found + + The file you were looking for could not be found + + +EOF; + +exit; diff --git a/Credits.txt b/Credits.txt index 0b9eb855..8d97f2ea 100644 --- a/Credits.txt +++ b/Credits.txt @@ -5,27 +5,28 @@ Invision Power Services, Inc. is grateful to the following projects, whose work has been used throughout the IPS Community Suite to add style, flair and functionality to our product. -NULLING - Last Updated: 13 September 2015 - Author: IAF - AES implementation in PHP Last Updated: 22 July 2014 Website: http://www.movable-type.co.uk/scripts/aes-php.html License: http://creativecommons.org/licenses/by/3.0/ +Base64.js Polyfill + Included version: 0.3.0 + Website: https://github.com/davidchambers/Base64.js + License: http://www.apache.org/licenses/LICENSE-2.0 + Buzz.js Included version: 1.1.8 Website: http://buzz.jaysalvat.com/ License: http://opensource.org/licenses/MIT CKEditor - Included version: 4.4.7 + Included version: 4.5.4 Website: http://ckeditor.com License: http://www.gnu.org/copyleft/lesser.html -Codemirror (with XML, JavaScript, CSS, HTMLMixed, C-like and PHP modes and merge, search searchcursor addons) - Included version: 4.13 +Codemirror (with C-like, CSS, HTMLMixed, JavaScript, PHP, SQL and XML modes and merge, search, and searchcursor addons) + Included version: 5.8 Website: http://codemirror.net License: http://codemirror.net/LICENSE @@ -40,7 +41,7 @@ Esrever License: http://opensource.org/licenses/MIT FontAwesome - Included version: 4.3.0 + Included version: 4.4.0 Website: http://fortawesome.github.com/Font-Awesome License: http://fortawesome.github.com/Font-Awesome/#license @@ -147,6 +148,11 @@ parseUri Payment Method Icons Website: http://www.dreamstale.com/free-download-payment-method-vector-icons/ License: http://creativecommons.org/licenses/by/3.0/ + +PclZip + Included version: 2.8.2 + Website: http://www.phpconcept.net/pclzip/ + License: http://www.gnu.org/copyleft/lesser.html PEAR Mail Included version: 1.2.0 @@ -176,6 +182,10 @@ pop3.class.inc Preloaders.net Website: http://preloaders.net/ + +success.mp3 Notification Sound by RCP Tones + Website: http://rcptones.com/dev_tones/ + License: http://creativecommons.org/licenses/by/3.0/us/ Underscore.js Included version: 1.7.0 diff --git a/admin/convertutf8/init.php b/admin/convertutf8/init.php index d7df7f86..30cba8f3 100644 --- a/admin/convertutf8/init.php +++ b/admin/convertutf8/init.php @@ -76,6 +76,7 @@ class IPSUtf8 'FORCE_CONVERT_CHARSET' => NULL, 'FORCE_CONVERT_METHOD' => NULL, 'SOURCE_DB_CHARSET' => NULL, /* If set, will force the source database connection to use this charset */ + 'UTF8_INSERT_ONLY' => FALSE, /* If true, and sql_charset is present and set to utf8 in conf_global.php, then the "fast" method will simply insert without converting. Useful for mixed collation databases where the utf8 tables are real utf8 */ ); } diff --git a/admin/convertutf8/js/app.js b/admin/convertutf8/js/app.js index 0ee52131..d3d3934f 100644 --- a/admin/convertutf8/js/app.js +++ b/admin/convertutf8/js/app.js @@ -113,6 +113,7 @@ var ips = {}; data: data, url: url, timeout: ips.getSetting('maxExecTime') !== false ? parseInt( ips.getSetting('maxExecTime') * 1000 ) : 30000, + cache: false, success: function( data, textStatus, jqXHR ) { success( data, textStatus, jqXHR ); diff --git a/admin/convertutf8/modules/browser/archive.php b/admin/convertutf8/modules/browser/archive.php index 72980a3a..8809ae8e 100644 --- a/admin/convertutf8/modules/browser/archive.php +++ b/admin/convertutf8/modules/browser/archive.php @@ -32,7 +32,15 @@ class archive extends \IPSUtf8\Dispatcher\Controller $this->welcome(); break; case 'completed': - $this->completed(); + /* Regardless of current status, if the archive table is not utf8 we need to convert it */ + if ( \IPSUtf8\Convert\Archive::i()->getNonUtf8Tables( TRUE ) !== NULL ) + { + $this->welcome(); + } + else + { + $this->completed(); + } break; } } diff --git a/admin/convertutf8/modules/browser/browser.php b/admin/convertutf8/modules/browser/browser.php index 15a36887..ec84dbbd 100644 --- a/admin/convertutf8/modules/browser/browser.php +++ b/admin/convertutf8/modules/browser/browser.php @@ -58,7 +58,7 @@ class browser extends \IPSUtf8\Dispatcher\Controller $json = \IPSUtf8\Session::i()->json; $percent = round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert()) * 100, 2 ); - $msg = "Processing " . \IPSUtf8\Session::i()->current_table . ' (Total: ' . $percent . '%)'; + $msg = "Processing " . \IPSUtf8\Session::i()->current_table . '
Row: ' . \IPSUtf8\Session::i()->current_row . ' of ' . \IPSUtf8\Session::i()->tables[ \IPSUtf8\Session::i()->current_table ]['count'] . ' - Total: ' . $percent . '%'; if ( ! \IPSUtf8\Request::i()->isAjax() ) { @@ -169,14 +169,14 @@ class browser extends \IPSUtf8\Dispatcher\Controller exit(); } - if ( \IPSUtf8\Convert::i()->databaseIsUtf8() ) + if ( \IPSUtf8\Convert::i()->databaseIsUtf8() AND !count( \IPSUtf8\Convert::i()->getNonUtf8CollationTables() ) ) { \IPSUtf8\Output\Browser::i()->error( 'The database tables are UTF-8, collations are correct and there is nothing to convert. You can proceed with the upgrade.' ); exit(); } $json = \IPSUtf8\Session::i()->json; - $percent = ( \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) ? round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) * 100, 2 ) : 100; + $percent = ( \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) ? sprintf ("%6.2f", round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) * 100, 2 ) ) : 100; $isUtf8 = (boolean) ( \IPSUtf8\Convert::i()->databaseIsUtf8() ); $processing = (boolean) ( \IPSUtf8\Session::i()->status === 'processing' ); diff --git a/admin/convertutf8/readme.html b/admin/convertutf8/readme.html index 3c195e4f..4884d6a1 100644 --- a/admin/convertutf8/readme.html +++ b/admin/convertutf8/readme.html @@ -55,7 +55,7 @@

Start Web Converter

diff --git a/admin/convertutf8/system/Convert/Convert.php b/admin/convertutf8/system/Convert/Convert.php index e27affcf..bb1f220e 100644 --- a/admin/convertutf8/system/Convert/Convert.php +++ b/admin/convertutf8/system/Convert/Convert.php @@ -16,7 +16,7 @@ namespace IPSUtf8; */ class Convert { - const VERSION_ID = '1.1.17'; + const VERSION_ID = '1.1.18'; /** * @brief Data Store @@ -301,9 +301,13 @@ class Convert /* Even if the current charset is set to UTF-8, if the Table Charset is latin1, we need to use this method */ /* ... but only if the actual column isn't using utf8 */ $columnCollation = $schematic['definition']['columns'][$col]['collation']; - if ( \IPSUtf8\Session::i()->current_charset != 'utf-8' OR ( $tableCharSet != 'utf8' AND ! in_array( $columnCollation, array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) OR ( $tableCharSet == 'utf8' AND mb_substr( $columnCollation, 0, 6 ) == 'latin1' ) ) + if ( defined( 'UTF8_INSERT_ONLY' ) AND UTF8_INSERT_ONLY === TRUE AND $tableCharSet == 'utf8' ) { - if ( \IPSUtf8\Session::i()->current_charset == 'iso-8859-1' AND $tableCharSet == 'latin1' ) + $select[] = 'CAST( `' . $col . '` AS BINARY )'; + } + else if ( \IPSUtf8\Session::i()->current_charset != 'utf-8' OR ( $tableCharSet != 'utf8' AND ! in_array( $columnCollation, array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) OR ( $tableCharSet == 'utf8' AND mb_substr( $columnCollation, 0, 5 ) == 'latin' ) ) + { + if ( \IPSUtf8\Session::i()->current_charset == 'iso-8859-1' OR mb_substr( $columnCollation, 0, 5 ) == 'latin' ) { /* Casting as binary truncates non-latin characters, so if we are using real Latin1, just convert */ $select[] = 'CONVERT( `' . $col . '` USING utf8 )'; @@ -317,17 +321,19 @@ class Convert else { /** - * @note This looks a little weird but bare with me. Semi-old databases (post-2.x but pre-4.x) can have UTF8 Tables and Columns, but contain Latin1 data. - * We need to try and sniff this out and apply a different type of conversion, because in this instance you cannot just extract - * as BINARY and then insert into the source. Instead, you need to convert to latin1, then to binary, then to utf8. But you can't - * do that on actual UTF8 data because it will then truncate multibyte characters so we need to compare the conversion against what - * is stored. - */ + This looks a little weird but bare with me. Semi-old databases (post-2.x but pre-4.x) can have UTF8 Tables and Columns, but contain Latin1 data. + We need to try and sniff this out and apply a different type of conversion, because in this instance you cannot just extract + as BINARY and then insert into the source. Instead, you need to convert to latin1, then to binary, then to utf8. But you can't + do that on actual UTF8 data because it will then truncate multibyte characters so we need to compare the conversion against what + is stored. + Mind = blown. + */ $collation = 'utf8_unicode_ci'; - - if ( $tableCharSet == 'utf8mb4' OR $columnCollation == 'utf8mb4_unicode_ci' ) + $using = 'utf8'; + if ( $columnCollation == 'utf8mb4_unicode_ci' ) { $collation = 'utf8mb4_unicode_ci'; + $using = 'utf8mb4'; } $source_charset = 'latin1'; @@ -336,7 +342,7 @@ class Convert $source_charset = SOURCE_DB_CHARSET; } - $select[] = 'CASE WHEN STRCMP(CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING utf8), `' . $col . '` COLLATE ' . $collation . ') = 0 THEN CONVERT(`' . $col . '` USING BINARY) ELSE CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING utf8) END'; + $select[] = 'CASE WHEN STRCMP(CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING ' . $using . '), `' . $col . '` COLLATE ' . $collation . ') = 0 THEN CONVERT(`' . $col . '` USING BINARY) ELSE CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING ' . $using . ') END'; } } else @@ -452,6 +458,7 @@ class Convert { if ( isset( $row[ $col ] ) AND ! empty( $row[ $col ] ) ) { + $currentCharSet = ( defined( 'FORCE_CONVERT_CHARSET' ) AND FORCE_CONVERT_CHARSET != NULL ) ? FORCE_CONVERT_CHARSET : $currentCharSet; if ( static::isSerialized( $row[ $col ] ) AND \IPSUtf8\Text\Charset::i()->needsConverting( $row[ $col ], $currentCharSet, 'UTF-8' ) ) { /* Store a copy in case it doesn't work */ @@ -513,10 +520,13 @@ class Convert $tmp = $row; // Use a copy so the reference in array_walk doesn't overwrite the row to be inserted /* Make sure it's an associative array as topic_views only has 1 column so DB driver returns an indexed array only */ - array_walk_recursive( $tmp, function( &$input, $key ) + if ( is_array( $tmp ) ) { - $input = htmlentities( (string) $input, ENT_QUOTES | ENT_IGNORE, 'utf-8', false ); - } ); + array_walk_recursive( $tmp, function( &$input, $key ) + { + $input = htmlentities( (string) $input, ENT_QUOTES | ENT_IGNORE, 'utf-8', false ); + } ); + } $batchBytes += mb_strlen( @json_encode( $tmp ), '8bit'); unset( $tmp ); @@ -649,13 +659,14 @@ class Convert { static::log( "Pre inserts for InnoDB table " . $table['name'] ); + /* This doesn't seem necessary try { static::$utf->query("SET autocommit=0"); static::$utf->query("SET unique_checks=0"); static::$utf->query("SET foreign_key_checks=0"); } - catch ( Exception $e ) { } + catch ( Exception $e ) { }*/ } } @@ -683,14 +694,15 @@ class Convert else if ( \strtolower( static::$utfTableEngine ) === 'innodb' ) { static::log( "Post inserts for InnoDB table " . $table['name'] ); - + + /* This doesn't seem necessary try { static::$utf->query("SET autocommit=1"); static::$utf->query("SET unique_checks=1"); static::$utf->query("SET foreign_key_checks=1"); } - catch ( Exception $e ) { } + catch ( Exception $e ) { }*/ } } @@ -881,27 +893,45 @@ class Convert while ( $stmt->fetch() === true ) { - if( mb_substr( $name, 0, 6 ) === 'x_utf_' ) - { - $tables[] = $name; - } + $tables[] = $name; } foreach( $tables as $name ) { $tableNameNoPrefix = $name; - $tableName = mb_substr( $name, mb_strlen( static::$utf->prefix ) ); + $isConvertedTable = ( mb_substr( $name, 0, 6 ) === 'x_utf_' ); + $isOrigTable = ( mb_substr( $name, 0, 5 ) === 'orig_' ); - if ( $tableName !== 'convert_session' AND $tableName !== 'convert_session_tables' ) + if ( $isOrigTable ) { - if( static::$utf->checkForTable( $tableName ) ) - { - static::$db->query( "DROP TABLE IF EXISTS `" . $origPrefix . $tableName . '`' ); - static::log( "DROP TABLE IF EXISTS `" . $origPrefix . $tableName . '`' ); - } + continue; + } - static::$utf->query( "RENAME TABLE `" . $tableNameNoPrefix . '` TO `' . $origPrefix . $tableName . '`' ); - static::log( "RENAME TABLE `" . $tableNameNoPrefix . '` TO `' . $origPrefix . $tableName . '`' ); + if ( ! $isConvertedTable and $origPrefix ) + { + $tableNameNoPrefix = mb_substr( $name, mb_strlen( $origPrefix ) ); + } + + /* Rename original tables */ + if ( ( ! $isConvertedTable ) and mb_substr( $name, 0, mb_strlen( $origPrefix ) ) === $origPrefix ) + { + static::$db->query( "RENAME TABLE `" . $origPrefix . $tableNameNoPrefix . '` TO `orig_' . $origPrefix . $tableNameNoPrefix . '`' ); + + static::log( "RENAME TABLE `" . $origPrefix . $tableNameNoPrefix . '` TO `orig_' . $origPrefix . $tableNameNoPrefix . '`' ); + } + + /* Grab x_utf_ prefixed tables */ + if ( $isConvertedTable ) + { + $tableName = mb_substr( $name, mb_strlen( static::$utf->prefix ) ); + + /* Rename the new one */ + if ( $tableName !== 'convert_session' AND $tableName !== 'convert_session_tables' ) + { + static::$utf->query( "RENAME TABLE `" . $name . '` TO `' . $origPrefix . $tableName . '`' ); + + static::log( "RENAME TABLE `" . $name . '` TO `' . $origPrefix . $tableName . '`' ); + } } } @@ -984,13 +1014,33 @@ class Convert /* We don't need to drop any indexes - just create a copy of the table and insert ignore */ if ( $hasUnique === TRUE ) { - static::$utf->query( "RENAME TABLE `" . static::$db->prefix . $name . "` TO `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "CREATE TABLE `" . static::$db->prefix . $name . "` LIKE `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "INSERT IGNORE INTO `" . static::$db->prefix . $name . "` SELECT * FROM `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "DROP TABLE `" . static::$db->prefix . $name . "_temp`" ); + /* Let's try an alter first - below may not be necessary */ + try + { + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); + } + catch( \IPSUtf8\Db\Exception $e ) + { + /* Did not work - try the long way */ + static::$utf->query( "RENAME TABLE `" . static::$db->prefix . $name . "` TO `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " has Unique Index - temp table created from main." ); + static::$utf->query( "CREATE TABLE `" . static::$db->prefix . $name . "` LIKE `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " created from temp table." ); + static::$utf->query( "REPLACE INTO `" . static::$db->prefix . $name . "` SELECT * FROM `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " data copied to new table." ); + static::$utf->query( "DROP TABLE `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . "_temp dropped" ); + + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); + } + } + else + { + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); } - - static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); if ( count( $cols ) ) { @@ -1565,7 +1615,7 @@ class Convert foreach( \IPSUtf8\Session::i()->tables as $table => $definition ) { /* If the table itself is not utf8_unicode_ci, don't bother check columns */ - if ( $definition['collation'] AND !in_array( $definition['collation'], array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) + if ( $definition['definition']['collation'] AND !in_array( $definition['definition']['collation'], array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) { static::$nonUtf8Collations[] = $table; continue; diff --git a/admin/convertutf8/system/Db/Db.php b/admin/convertutf8/system/Db/Db.php index 284db2f6..134ea122 100644 --- a/admin/convertutf8/system/Db/Db.php +++ b/admin/convertutf8/system/Db/Db.php @@ -61,6 +61,11 @@ class Db extends \mysqli * @brief Multiton Store */ protected static $multitons; + + /** + * @brief Return Query + */ + public $returnQuery = FALSE; /** * Get instance @@ -111,7 +116,30 @@ class Db extends \mysqli { throw new \IPSUtf8\Db\Exception( $error, self::$multitons[ $identifier ]->connect_errno ); } - + + /* If we succeeded, set the charset */ + if ( mb_substr( $identifier, 0, 4 ) == 'utf8' ) + { + /* UTF8MB4? */ + if ( isset( $connectionSettings['sql_utf8mb4'] ) and $connectionSettings['sql_utf8mb4'] ) + { + self::$multitons[ $identifier ]->charset = 'utf8mb4'; + self::$multitons[ $identifier ]->collation = 'utf8mb4_unicode_ci'; + self::$multitons[ $identifier ]->binaryCollation = 'utf8mb4_bin'; + } + + /* If we succeeded, set the charset */ + if ( !self::$multitons[ $identifier ]->set_charset( self::$multitons[ $identifier ]->charset ) ) + { + /* Fallback to UTF8 */ + self::$multitons[ $identifier ]->charset = 'utf8'; + self::$multitons[ $identifier ]->collation = 'utf8_unicode_ci'; + self::$multitons[ $identifier ]->binaryCollation = 'utf8_bin'; + + self::$multitons[ $identifier ]->set_charset( 'utf8' ); + } + } + /* Set the prefix */ if ( isset( $connectionSettings['sql_tbl_prefix'] ) ) { @@ -148,12 +176,6 @@ class Db extends \mysqli */ public $prefix = ''; - /** - * @brief Return the query instead of executing it - * @note Only designed to work with methods that call query() vs prepared statements - */ - public $returnQuery = FALSE; - /** * Run a query * diff --git a/admin/convertutf8/system/Output/Browser.php b/admin/convertutf8/system/Output/Browser.php index b10c8fb7..ffe94c09 100644 --- a/admin/convertutf8/system/Output/Browser.php +++ b/admin/convertutf8/system/Output/Browser.php @@ -103,6 +103,7 @@ class Browser extends \IPSUtf8\Output /* Flush and exit */ @ob_end_flush(); + @flush(); exit; } diff --git a/admin/install/emoticons/angry@2x.png b/admin/install/emoticons/angry@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b28df8fb12ce11c912bfda680c504f0d45cb8581 GIT binary patch literal 3909 zcmV-L54!M)P)^Zx838fS|O8O<% zfuI9m2f(wrElW=y~Gfd5h$fxF68?Mp%n7(@QO2QkiEs`BIgGCl)BabFQjM|(fOcL|P9BBM|iqYMr@XYA#9Flayyj2V#!-MWTX0`YwAV^Zgjy&L8DaSJwVYKH%8 zZ-Mn6G>2Vk8_Il?nru3eYy!+f`2(*uzQRCVH6b6yjLbvribuOR4F_rOW80PkbRTNt zyPKO~WmOZ@eHHj#3sLSzX=+aZ`=cx|cu43{Okl>80+?K0V6UfDf!#+&wbKh==G20u)iiC8LK}INwmgUwg;nom zZ#BVdZyBpLYyQkcfYoOVAi}G_#q&~w*Dj^~bKv?}1u$}0UiRHn7(~mf&h|3lfZVvH z1zuX&1iSZH`qfx7=lclp)iwu+@NVVKLNRFNWAovjJI-nS#tKaikpUDS6Ba!B+-a!( zz~_kBj`;}j={5t1@K~dDsSa;$MIp?aQ`mN4fDTc2ECQY?U|AqkOUY z1DrwH8h9JetJ$Tfvy&KLzgVj9GKClkUYgG|MPqia)Hwabmj1_DcMC6s7&C!y{XP#w(J~$@rKikneu}#m1CAYTx{Dx z=2VteTd<^BVN%QTzCq2JFb$k7!|T>129w9<2SPBxlV2cP+L8`DR&q)|6LxatGd&eY zBAPd>bupAc7d4b;4Cba&g>RHMCYR?K^LY$h5WI9ChIwMs|DwPX5C?1*>;HVZ2dr4! z-RFcDyz(L8ERq7m>dUB4l=qFfEO~0m1TR|_G9b^5T*pOnH=JIP720x=VKrsqgj`d|$&RZTQ|`5CDIoT4-g5HqUhL zRLbaqG?YmoKpuINDJnfYH?w3(79q9;JXS8f$hWJEvq`Ff%!CT-+V}i8^y(4I$o^#u zVz%JreS4=8{!yU5{8$f+RQsqtrn?@I1p!q0b1(iz8~|uW8fOD0Bqd`XwV1A9x|bO$ z^=(q>?e5>3hO!9)I7r^;TN2OsCFK{2qKPI=Gwlo0JQG9{I|?9mk!sGQM>v}xfCH3^ zl*E)@B^xD*eUgDiv5l$QJa=@1Na1+f{C!Khg|o5SmWC_$SDN8HiTbM%X_-Xh+?QfY zcVAM?$byzf(MBqz{@tDcMHBIWUd5olX#Xexd&wKcMKJ}K3nNPEDJm>h6@y~tR2$|| z@4a?olhSuQ=38;0eJ=c>0vgIDs0u6ToBVv)P+(xcp;76FaLYR{_J^~jtbVeuP&>CD zW&PG>SidbHUX?M-&k1J}q=Cvoh53Zr3m)*WixX;xKYF&rg*g8DJ<%=E{y|1trza}> z|2scY^GS)@|8k*|k+B?TWtZmIS(tU3nmiLFjlC(zO%BkP&cepxX^{GSmpon!d3lH~ zMxeUpl*nAL4jh1RTiB+>*FUU|lhHfa-Tn}^v>3z>o5iuC2M}@2O^Z|=tE@gql4)Rr z+>k!iNFg^D^^NtjjxG=>aN!teJAi2HT-Vxlig>op{eRiuxDC?n@?`r?H5u6?wSme( zji)VsL#o)q_Fbq1ii(7S5Z+(x4goPWVc2S8ngEZ<8z)YHb3-b(l|b=UXOwB6_VEEm zb~ToTa&d-zILGjPE>M1vhDKl2`Z5Z@&y_QdCR7bH^}U`ch+%_^WDT@rky2bj1NlBn zf{x3>^}ajqi30F5dE-E><=nv4LQAX4X9}WecpIogeq9hUO#As0paM-e8mTm_QEKbL z*+d2?RNT@=g3_R|Dl}nfE?kRd<^=9>IfkBrSl-)T!%QpX~L&pu{d z8#S%d?VR!~+H(p?cuSu>l(mn`@sk9;I8Joux;ZI8J{Ck7RI_nwi|}T06_6iXeW@&g z3V?mZ4**sTK2>V#~zBRYFidd0e!B$A|RlBUQbs zD>)ASBY&{lmxW)$m_!E1%X2coH)|3wX;cil6uCe=D8zNfE?;ScsEyEu>b$&{rt{99 zI6L`Jv`KSn#rmoj&Q+Y3QX2xQtLsGUI9Kz^a@9R~3ZVMan280XQiWMz^KHdb*PWoS zx+Y<^EeYw@wX_GMvKIv2d~hC|fr|o9FOzRL3{&PE4t*A(c?l{86)Cn)0!Jk?v*zQt z?SZ9I%UPrb5LK2X`4%Wy;P)*!c~X5iQC)(dCgc#wsUnlEtFS59aEpl1k?x5vwN;>t^6nsM;m-?zdwg|9Yh!-{c~`pv5NAuc{y+?8-No> zrx9}m>?Jr$o-?%VU5p5mH}$3?q4yH7OraXS=+s+|hMvD{VUZHDxi(MnxYUb6z?}+# z%dLB3@bD_1OSm7k@4>KpMj0c$Ko9ShRwclae_<&RDb_VD2!qGQ>oGA_f9V=4p6CuM z7IzE0&Ww9c@OwM=w{&=x22aY~EdMBGipUlu?Kn$!n#0&j2;5l_2NLI6=W1RI9E~Kd zHewZv`C3g{zc*CcM_h~p;+RV_xc;`W`m)y!Hx2{o;Vt0$=lM>;x?Dv>-9etnfYrq z0eqgw;25oa3G^K?}IY ztG`#r&e9*R18mqHgQu!}PNVfE8%hw3(_L?z05D}Z z5q8fG>)bhNz-=RVK$B--I8MvUH0wa*358y@)V`shISVGM{~d!DYJBiof4Zv#k&WPg z5wr={*Ng&~Jyy~-7beJ>2;u$7-dG={quZoKDmWFII3A?`gJbgy)s{uZZ0i3%Qe~0# zDgR}I0OnssJ&1$|B@{CyL5_(veo~fM9r#0ypE^;%L9o^_d9peV@9r?dYuhRRnkGK4 zSLf0afSDsH47teDHZj;o(LiGE&kbr!%i1PaYYm*Pbz46tc9gN}aLiO~ndZHmE`w}+ z_GCF2#*IuHjt%Hx6pA~k)i`=KnyS^=g{F)y(7;JrcLF2WRomjQVykhGDC;DjnX1i8 zC7l(uuZjGbIl7jm8^^ z5AS69^4b3M6PxLMm+81JsD`J_n-jpt@3e+E)KR0-N^4V0$frjk`nR0@fvY zr`}=K9svUP%y)zH>A6sSyP!LTi+ZD0cBODGHqX1AL+u1kzn)Z?g0S~XV)JCl&O`MC zYEgC_Cb0ilQlrXJQoloa1Pq_QYpWL=M&j{Tb2?tCiWPB2oTaKY#`8s{23Zr z={;Nh3ziKWWIvRfxx;DgQqAwxkKenYHE-5d-%w>K@n^WC^AXyx^0oK~ty~Upd-Mq3 zc0Ys6=3ta^z;WZ!7 z_s&Fc_i&dQ)tczDc@C)hbsFsXy$6o&&4lwGWcxKW=!LI`=lC^s!3*a*vYE1=t0@DT z-t@r6l`eR8ks}n4qkJs)%oKRvXX>ABQsv8CuzzbhjGguZd~)Bk`ug&mfQGp)p}g>) zi%dga80pQ1)@l!|c`;QBWIvA0%;3Jsv{r2b`H!c-u8khJ?3)en_xnPSCP)sEX>c}t zbzwGK?8t<=H`3s#NA1&rT#I8h8$1tBF+i?7Hkn4|a^q*_5I}}OUP5t*A0tGjkFsI( zcqY`p;ethvsDi|?ddvdv0kw2wd!-x32D}7F#6S+CgiA{yet9+vu6Ad@mQ|_Kr9Thc zZg}%W!Yfqrv=ffCW)c9=hREGnKs=KLUkqeISFIbK%S#~;`Pk>*E_j7ZU&#lx?v=EN zL!$}};+N+*#M7B@>ts4qzDT1spF?4+;XSSduV%eROfdEkX<#{zt{kw!Tc z$$zYF16lJ-YK3$yoI37?$?i0G=T*h%Toq|}bB#pX2fzC*C6Uh=>@T#nkh$?KbmJZm zOdd;v&%0bu@tk79JvWktfj(*Hzbtg(V8fdzl|gV+0wQv{58-nI%iTA%UBQboEy z;l`508l&+Sl4v~nSLVh?Trkn$giU3{3a=sqBLGXK9sZnc&PV#a;lk7LnaK609*u+7 z!J7==rDg{#oJXv%)JWR$skF0(Do;4pXW+Aj`;)DMG@Y6BxdQ+@Q(>ar0XtR_EBq8$ zgadF2?G42IR)|_CRUgq4#0!bPHNY?F}mr9 zzPh7pr2EqjB)#du01r9f#(OES^<@IEO)tD;d9mPPS2h7?T8Vs68z4sFqiI0^Kipwg zDmFOu09+cB_dVmp!Q3?f$Ny-Dl7++ym+Ar7D*bY6b^2WgaQCZ8a)7NN?>ywkk^kzQ zeb)gTtRVnLkxeK7@0WgY=|Tq%;*JGKg9rjlhU=|Ku=ok$#`lK;upp>tu)>9@z)S_G zJB|75&kW#!0Kheii4_)v0?2AJII3fMg#6UK>09gl7I!jG4vOaxdq7m5cU;oCMZE&TI0GtQ~AV`E|AO?`> zBC$dOFn3;}R56CA4lnmdY&;L45>V2=@c`l^0c32i4MukpfS?Ibe&#!MCL2=#?#9Fl z2|(VIK*r!~go5J|f`CsF<+aiJNbP$o7&1A_3_0`AiEB$CmqG5I~aqVemlr9odx#JB9DZb-%Q50-%f5YGvSa)1<~Q0$>mc)2+;fcr$`m0DlJ z%VhmK5cZ)`X?_Y;Z-XJ8RfR|<6D62>e}`J%ej0hv`Ve5r&xrdL>jCJHA8TINpQZ*; z$qKb5X#}k9K7{psTRK)6IJotls!B9)tSKP2NjurO+KJ^K0kNNnM`x{Vlr{w8;!PW# z5V|f29M|d+V9N_u0|)B@V7|1Ir+#9Ge;#sih#m%!fiwm&dRD3pk4IhVx|g;lK>ou? z5qY#@mb|!Hv)bXW;Btugh#00g=+X#M17d6&g{SSh*J=}BTPZD~B8!MT-d6CK9j>*z z0uX&}JX2r~DxymZkObmG9HPnLq3d2|*7x)y#QK&Qdcabi6IQQC!7~JZDSYynTUetX zWCpsm0>lIaX)<_X-5aS3Sl?U4#QH{&fzhW_Uy^kSM>adL5Q*h*VT~s|!mUp#LPSL$ zUXBJlX}-5hz-#{vEuP}sqw~oL-*X|ZpDJEnTBz0E`j^=qHU{H8(mng!kiqflI^sV&WtL<1*6CnTR z+A^4Qf)pgzw7~&IEshGUj^}v@j|2>a*YJ|!y4Qzujp@sV2g>bOSHsdcf<)KmR*5jV zWgc-MP|Z?3heSnzsal&eUif zD2XWBL|qp1JPr@)%PcW|-IYRIp!CA^ma=3#*}}&oBrpZg8}B1j0TyKtng|kmm90*! zcj{{%pUab`c;$c1l4Lwv#ZnQ%#B#X+de9G5fThB}slmcNv2RRE&{YXIb*p3AnEICHp>nV&yG-Km_*p41l(06GRS_JuI!uxi;rRtNHMd=0 zhHFnIm_V*grAaVcXJgjF)q)_jBw+FHQD}UPLsu2xsMQT^PJloBf?6Glk2%Nu7w`Ny z8Qv+g!Emh=AqX{72~bMFq|mg%Z7a1v-n=ApU%W%}L}{{3L2g}UgMn%Uq9G2815<=1 z(h>pgbX6iNhRVQERgpZ;WFY5iT|V~OGfB|!iVcRgBOD4z3QGVJ(4^KjSe?icVk@jF zu!VB@*xZ?P{atA&*WWF9A_*!N+n~10>VK5t#P2N7yU`K^3)QnB5l*a6gtpZds99!( z$|4(nH`MFzN^wl_3mEU{3mCPJ2MS_%1!w{OX8aP`_$9Quu0dYQLG&>7sZ>dN_-EGs l{~F|Yi??`-w|Kj4?Y~Wg7(b{J7BcB&4Vj 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 O0000MM4J?1#i}I$g(k!)I3-1` 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:(": "angry.png", - ":D": "biggrin.png", - "O.o": "blink.png", - ":$": "blush.png", - "B|": "cool.png", - "¬¬": "dry.png", - "^_^": "happy.png", - "o.O": "huh.png", - "xD": "laugh.png", - ":|": "mellow.png", - ":o": "ohmy.png", - ":ph34r:": "ph34r.png", - "9_9": "rolleyes.gif", - ":(": "sad.png", - "-_-": "sleep.png", - ":)": "smile.png", - ":P": "tongue.png", - ":/": "unsure.png", - ":S": "wacko.png", - ";)": "wink.png", - ":x": "wub.png" + ">:(": { + "image": "angry.png", + "image_2x": "angry@2x.png" + }, + ":D": { + "image": "biggrin.png", + "image_2x": "biggrin@2x.png" + }, + "O.o": { + "image": "blink.png", + "image_2x": "blink@2x.png" + }, + ":$": { + "image": "blush.png", + "image_2x": "blush@2x.png" + }, + "B|": { + "image": "cool.png", + "image_2x": "cool@2x.png" + }, + "¬¬": { + "image": "dry.png", + "image_2x": "dry@2x.png" + }, + "^_^": { + "image": "happy.png", + "image_2x": "happy@2x.png" + }, + "o.O": { + "image": "huh.png", + "image_2x": "huh@2x.png" + }, + "xD": { + "image": "laugh.png", + "image_2x": "laugh@2x.png" + }, + ":|": { + "image": "mellow.png", + "image_2x": "mellow@2x.png" + }, + ":o": { + "image": "ohmy.png", + "image_2x": "ohmy@2x.png" + }, + ":ph34r:": { + "image": "ph34r.png", + "image_2x": "ph34r@2x.png" + }, + "9_9": { + "image": "rolleyes.gif", + "image_2x": "rolleyes@2x.png" + }, + ":(": { + "image": "sad.png", + "image_2x": "sad@2x.png" + }, + "-_-": { + "image": "sleep.png", + "image_2x": "sleep@2x.png" + }, + ":)": { + "image": "smile.png", + "image_2x": "smile@2x.png" + }, + ":P": { + "image": "tongue.png", + "image_2x": "tongue@2x.png" + }, + ":/": { + "image": "unsure.png", + "image_2x": "unsure@2x.png" + }, + ":S": { + "image": "wacko.png", + "image_2x": "wacko@2x.png" + }, + ";)": { + "image": "wink.png", + "image_2x": "wink@2x.png" + }, + ":x": { + "image": "wub.png", + "image_2x": "wub@2x.png" + } } \ No newline at end of file diff --git a/admin/install/emoticons/dry@2x.png b/admin/install/emoticons/dry@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..33d35e96a92b426c48401494fc79669cc19a3da8 GIT binary patch literal 3043 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 literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/happy@2x.png b/admin/install/emoticons/happy@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1e054509348b0b14c7b11dda732833aebddf78fd GIT binary patch literal 3068 zcmV%g@fn zcfXCm+(OR_)e7|iP=xBkSaMAFM1?jmHs}1_WapP$KTDNiy!3@G}w_x-*inSXz)@VT|AO2G?|W7WmDCg zURt*#ot~ZPwga+99?L!B1>TQ@T8Ep|iiPR4Z&Mcap2;Kn?7m_3&9$jMbxB=?^60-; zggW!6yD67y%e=Jw#WX9BtvI$=2KQZ|Rlz2Z|5z&RSm&i{r=}47<31a*1Sug3bxfhJ zFHNB4@vHX9bmK%eZCsi*T>JCD zSi^gQ8(vn?(;oVyHb((4@(^V>GsJU~>C3hpI#!WM&&^6TgE)XWj1{~>p|910TK!4} zCOX2h2l1=(65^R08u~PgN?z2fwwy!ZXv2HV3|{#fFHdmvA?k(YB0|~c!l9OI`p@69 zXv=G!U=W`eEqFf>8d49UWtpnnA<2+TfJb^ZO`Tj#RNpf zh35spvjSkN0N9*GgAHCf@TMnNVeyV+pLa^#Y4v)=c`@a}yr3=|Je5hiSD5C+Q<&>W z04!B^R=JjQUhF{}J{Jz2&ZL188T8Jprq#JL+VG}XRNEMk&0HwLcnD$K=%s;AGU)EH zbXxhGX~R7&nhOKX#=(DE=)u9pAV3wO4C4-CUl1GUL0Ix6V(;<@q*_;y`33A9t6PpH0rN&)7B-L3qJ>oZ~)E>SkHSj zm2S0R0W^w}Wkq{D^LFNfk_VMS0)U@Yr_!v4G#BQF1Mq-xkcu^#I4A)y%J5jx9?!av zG-U+>JnW|1AEeTzmo&#<#RL_7T5u}()gvSQt!A1Xupxx z0hTY;0Im$VfSlNqjng57!Z-vN+Ns>_zX^Z`QmAjA09cbmbtPdG67{x>&iWh%*d+l@ z(8Yw?hXlaCN`UXVsHM!M0&KMesGR@e-V@{ywUA7(@8G#ygaAUp%!T9rqS9T2?}u9c69An8pd)mE>RHIGrpeNUd1fwz zV*IkE-oEJJ>*4U->kHrBJx;n_;Rq{)yNqA@=ZS3mf>tgZXBXB{eYt%x4c{s!b!>Ko zUPRO@a2GzvM*h%qp$>7}+}Z*6$@57aLTw%as!a@&zK^zE@u{A^n84EX9>Xr9oVC%xY9~TdVZ}*NwS}|KY6DbUNIcx5( zQgHx2i0urK^PwfgF}lSU@VIdJ`aY%da_-aI*S$TFX8%Gv7ye;b3#!+Tc+r5Ok|_|` ziJTKHK#uH9<_u4s^K$4K`ab`{!9kh(jPBdzbKj-69aamf_6x~-YtvA{kV||J&oe~5 zuvmf|p~oBmk6RW))#cDViqPfLHk|kN?d8gAbl=XGwfwg~?2Agp`KegF4TRVp45AH? ztVkZT(c!hL@RYpAq07rwO67(70I=wnTKLWn1)y8Kta)i)hBd^?rXbY|-uBfM6dd+t z2Oe4$&U+s!p{o`S>AsfI#0V~HGQ>m1LAEXP;D8unt1K-37U!Z7WS$>nunXSybkz(T zyUur(!POSWWDbw>o~*hYx=P`=S(!i^UvNfnVVwcy8wYvn=PC5B!|4*Dmyn!?j1b$+ zKu)o|=&dV{fiX0UrGmpgxmDqU5eQEfjs7~$dt7z((7n1Tf$|?pips4Wlhno4@?~!1 z6F)?>2WW8+HVjf07zq-fECom`z>?~a&={O76bugg#xdYnxL~mJ7#_DQ!9w?DMFMRu z))!I1A}Y7H6+D_kH|x@IfM^TQTcJV4FV7&)1~?KE1|-{JU;KS(j5R>hGLW(W`&7()wmoXmCD zCx@);^Ntz|#&GaB?{!!D-1pXe&3!#!5b0g2FDZl4(G4CnqzDssV}qB&8X#M^&_L3e zb^tQ4v%c@j0wEn|2-gO7oj4X8lkD>h@ZLAVQ~JFf46p7F`r;|(J|Z`nCWK*^5+;D#=@9JaM&mIZ46m7$>{TBs}jt4Tr>dhW_bb?O?O$` zWFF8SE zA=jZ$uLNw6&b`+y(V z$v|ir6Jui^42}y0TxSSb?(+aoDHwpa^Ci=~*NnN2>cfWnSEOJPZ~-QTaFVVBOzF&{ z5`u&ZAq1wn`6K^m%@G+ZQ=T`Eger;&ihIt~V}9#+5DP zAp=YXiX;yZ3|5o;KR(OAjLLeM z|Mvv|Q``nQO~L7|LzA3H&vT!rhVArNciybuU!K7Gz z@s8dnapQSPYDz8Qj)UmM9uxCoL^-*?IZcwDI)%yJ9=9znlAb5|zwxQNX_8fEHk% z@t4rXUqTzwYmiq-5RF33K~_l`a~=fYVDb8 ztk+Yi>Pg!Zt6BvV#8OauUO6aQQLDhI2%<_+?0G*F5Jll=ZJ)l+?$bQ8?>oD*v$M;h z-ATUxz|PD&pZz{R-gjr_2k|Yw#kcqt-(t5t@w4O~3C$5&EmR}aN*Wdd(y-?5HT2mz zxbOE7m{aH_p*o>KA+V@HJQf|(dA~xND3m93Pza)|gLJNm_XD^Gg^Gl(3Befa8lC&W zdlB3N6jJ?07y80%CzSj#1NOY@h9e*3z=cD(UX65n;G5nlUX5Jzz=ftj)I7EWSqHt!2XD7jz9XZfko(V6`PE{b%*r&$|UV+eE zc~EO#%ZLIvRRk?4#IMc~#4|ZCdMXQwUs0cG!+S~(UfDV~UR>+|vV0IPU?}@s zIC?r8{{PP`*!G4i5X9+Y1#gnk`7oHOUI|aaY0q|rNjI_Anz}v1sg~c7sKJU1E(wdD~*5Fx($OT1Tx-J|! zo(a2GsX39ZaY8fzmdGcoSWh`G)&PwmD!FjvL?#R$&4Bk`*R9Sak%l+bLbZ)PJcekT z3q=@@Vi>o&VfeEQxYL{tt6$V@xTi*PVc?|p;J+_$;b0?IRd2q_vhrEAKNQWi2kv%j z`$GRPzH=lUZXZg6muD#uPvW&l0^kDq+c~j!Qskhiva$~X)K2xdFXWa+3FF(JropEh zb@Sl@%jhRv$RJGt9Q-H+3TG-VoNoqTop$HC(yZ?tz}>GW$pGs@o_WYWNB*yEvINjH zys3~4HN>mLH(ffN|rCjizaK|^sEg+#tBqvv1_ z1MDS$(GFw%V_F1gyqIvSUI6?X0sPPbr%N3&z;;7`()<_iJ;6patU^LEd$E!GQg{r8 z%UMH>E^h(3DJt-dy-8kxJ=^Wdyf_qqL)x8&I&yI`F6Tirp^P$f!I3;xC=04e3xoM@ zpvD1LD-?i3h5)4<(E51G1c$NtVj?S;Q>-~#Jr|DMU`Zbfh)XFT10Oh`f42e<3<1i& z`Hq~;#V(%0SaxB=R-z+z9A1s~gtQuc2gCOhCI1P4b^*|49-ur6xzRR>TG%z@3#Cw&AjS%w8oKJt!{2>+ z#iN$1Z(pSib}X`oHI*yyTTEEw!fy})2+g@gJ&sq%8}Q{30LGZE(eN|_7) zB&-G1t4(ffK(UfZ5ZQ^G6D@$Wev>)Fqd6~!uBPv!g#)a-l>69yRX+D!e9vaEplYI! ze7HUhD;VYyAH;JEQ7tUyL0W&zf#FfhqOH0dx`#1zY1&5f-od?GdA07Vd{xPR`@{ZG zsVFZMS8x3xb_IeM0!WsX2W?b%T{1i=?{VnTvXxYM$$bd0@YhQCE-(YoDgUf_abJcp z#Lx9XGE9@|4FV3&Weg8n7S4O0NTDki4sze=l0*wXYcj-o?Ll^|aN&R$V!OAnaEo(6 z3(_NlB$y_3Sq~h$&Ns{8YKvpihsSx3sxF7FR5-3zB*5mE?G}DmXMlOygFO4o6!>pr zIze=Mlk=z+VwWCBf0zuEp{nvQFowpCV{mv*ZdJHo_`{>3G1S0$kE^a4x|g>kK;C0X z5xKQvqP)0Tw!-PnCj=4O18i};VM8FPz%alXizaQ zh9)_#lfmJ+aSS*X91|4`6Yw~6uL$=&_qgJ|g_drxlzYO`rK#8sU{B?3Ov#M|GFya_ zUZx_RB z_>s(sbVUvt~p08D@HHP=+0=tFB94tI&v+WNln4~e^cteLkVmMKbWSHn0 z0!qr#%Iw291P*f@77BKqCShlO5>|AWK__(Weh%@vaxZb=t8GqTrJfwliKrzW9R0b=H|Bs)g z@I>LUe8)t$?bidR?>f$RfpZ>R%QNHRk^hzRlJU1yygbVHJ?jYUb&Tj3CHA=M%XBQY%6PlCod4nvi}sjlnUlmLJI zov!PE#yoBOzj)^t$?*PS2lSTP5dy156@$_PCP6a*x3$OyvmZ?w&oACl`$TTG^+9e~ z=zxw=1Y#h9MZk2Saa+RR&XgpI#ZU>Hs*-5+c@dlT8NGb$jpvh~@-+waY-2zSNrJ_| z7@Edy-KB}5A-2Qvd`BoRADenFz5cE!l-J+QdpZe<=Q^N#vE6$sMay4o(6+(m2Mg7@ zJ`q~hB|`lQ8b%707*qoM6N<$g4m?t Am;e9( literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/laugh@2x.png b/admin/install/emoticons/laugh@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..da94f4640ac5d89e23f164c7aebe06a81ad2703a GIT binary patch literal 2661 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 TCXCLd00000NkvXXu0mjfLW1eQ literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/mellow@2x.png b/admin/install/emoticons/mellow@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22b9451c2b4f1ff17dfd160a75a8193e31304e76 GIT binary patch literal 2963 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 JPDHLkV1fg%f$snS literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/ohmy@2x.png b/admin/install/emoticons/ohmy@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7edcabf49f617889824d4a27b695821a83603785 GIT binary patch literal 2986 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 literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/ph34r@2x.png b/admin/install/emoticons/ph34r@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c70d8fe197860117fd229a737e5a09b2b6466b1 GIT binary patch literal 2752 zcmV;x3P1IUP)9S*NMJV_aH(y7TGp~g)LH!RfXUr3?CMT!(ERA@$pW?XQ> ziIY*@P8`Q!!q{dK$9XA<^B7Jh9#ggj(w2=o?~m}#g1fi72P{a6Hg4uSmL&=}eE9qA z?%gf5FhAzU{Foo}_nJ|8&_Q3* zYx!GOI{v+@UGMsr4(uyyejkBtAgtX+y_(c&wG>jX*E56v90#LTDisL&b(pjwe|N22 z+PK>D`d>)2udbB}{cdo(9fx}~SfkO%6AG1u48t%jm&<8f_xILX-tA|5ZsF`#+iJ-| z)wbEFSB5;aD2k3Gj$<6=&j=<9i4iemSoVj#rnlMey4G2&xJ5KZZ6LTL11=M**=+KX ziONErx9 zJY~R4L_D0ZZA<`d+fMCbF>N=jyC++DZSNapbV6krpuGB25HX;v3Yp1d9I%K0iXGnVr!}eyLV*AHxawK2w3RF;KSllShs>WeXEP!!T0cH6E|V z#_ZRLt-7-VZ=3-ruR;PzV@@9RwV)7C*Y&hk)^}z*<2LPectdz&H~|5m{JNK5s)fbN zxr~tmYMO>76=Qui<6gVC7zXzK7$B}f8c>EvVJd}gTUqsS0mt#i0bN_$N3Fc54A^cI zUxYWJ0I4dJB9ahPl@K@yWr8|l{6fX$k<32y*zB(Fk(__eFcc|uSpOWxOK@yPOJynVTVkVdF&PFHl7%=qB|KswOR3Sb|)!<=(&dgqay!sXw7jXa&g7Fx@l3RFpvUOi< z_6%Kz?+gYMA!eSe<1pWUCS{Lg5+<g`Zi0s3uA|Bi8fAV%cee#D|`teRR z{ph!q^x)TJfCEG>-tzKt>br&Aob78YTBeo&U`7?fcTD*MqPM}30;<2h9B}{DAbtF^ zk`PeWRuVKD%dbp24dXdn&QujbQ~}{bDF72P6x0000>pc1%$Ng`g1wPKm85? zWUDa!x9|hz{cs8`tnm5_U^o$ARMGB80c&M_D+3TROF+nR0z$F@|A+v8j{x5s0qz6f zFA(6%rS!uexd6rmtoquPd;;;bUBF`y3E-J-VFHNScN+ozDi{I&)Js43Ar~`o z0hBSP3IPyuW+#y+Z`IN#zeCmc1_JyI0(=btzT&4J0^kqCfVQ=AAO*BcZ72dv{?!D) zv$~8S#HO zK>Pj##y{AW{!sE((O$en%J_9f%rqwjJ7^S5x()IJfc0})`H z1qe~YlV^IoKOwxg5FR!A;^hl&-$ySM0g#87ZxVs0Q6j+MKVn`L;wZq)7V^`-MhLHw zQGNLO7q_o-*uIaxBLu|D82OzT(WTt*@38>!M1$WK&H>H^&I!(KbdG3Z4N;#405P7F>Ew=#uzT6h?c;IY+LIa+IaN)vuMu=oglt8M(kueWf9*c*sc}eSzt@}nd4q)cRV;{!j0vbAXLsk4l&e#<^ z69F_P7cXAKkwL1%u@eTy!%LR&S(mi#E6}>+vWa6^TGpcPnfsD0Zj-h!ACE)^C~9HxEKKk?fYc^))uR_#>oaO& zg}u^3K#VsfAlts}y0N}6%cD`Tc4l0Kki2lyRA1iqWdN%I=Lc;RTY0JMTLZ<}SPsd; zO)~Z=x3A~u`?4SPQka#kYmRLtf+|#B6S8P|mo5;cD-hGrl5S)i?>`05i>;f*qLog7 z$QctEOogitDW0VIAR3H&Hy2Lg=tR~FHoJ45cX^jpjWnkG+Lyq|t~wwSIok6PW@OzvvbB02Sf5O38*~y>uES% z)d}%Rt}*DT&$hE)Cq`9k2TnXEBnwJHgVAWBs)I0a7_S~0JF<1&X}9!xP_hmvNE(wD z4wMK@UUd-9F%CKnbNz%E)Neqv>ei;~j27J-OgcO$2oFsP2ajmus)(~m{ literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/rolleyes@2x.png b/admin/install/emoticons/rolleyes@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6785c39d3e89cd23bb6b12429e18c88642c99c1e GIT binary patch literal 3086 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 literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/tongue@2x.png b/admin/install/emoticons/tongue@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce20893df5b4362a1c427f6b026dced15b9705ae GIT binary patch literal 3242 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 literal 0 HcmV?d00001 diff --git a/admin/install/emoticons/wub@2x.png b/admin/install/emoticons/wub@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..440204f258d7d55bc9422d51987b67fcae208b0d GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/admin/install/eula.txt b/admin/install/eula.txt index 04d28daa..7578ba6e 100644 --- a/admin/install/eula.txt +++ b/admin/install/eula.txt @@ -1 +1,27 @@ -=============================[NOTE]============================= This software is Nulled! Nulled by IAF ================================================================ IPS 4.0.13.1 Release (100045) =============================[NOTE]============================= Invision Power Services End User License Agreement 1. Acceptance This software license agreement (the “Agreement”) is between you (either an individual or entity, hereinafter referred to as “You” or “Your”) and Invision Power Services, Inc. (“IPS”, “We”, “Our” or “Us”) and pertains to the IPS Community Suite software, its components, features, enhancements, updates and modifications (collectively the “Software” or “Suite”) and any related services (“Services”) provided by IPS under this Agreement. By purchasing, downloading, accessing, installing, facilitating the installation or using the Software or Services (or allowing or authorizing any other person to do so) you are warranting that you have the authority provided by your state, country or jurisdiction to enter into a legally binding contract and that you have read and agree to be bound by the terms of this Agreement. You understand and acknowledge that this Agreement comprises the entire agreement between You and IPS. This Agreement supersedes any prior agreements, promises, representations or descriptions. If you do not agree with the terms and conditions set forth hereinafter, you may not purchase, download, access, install or use the Software or Services. This Agreement may only be modified in writing, signed by an officer of IPS and You. 2. License Scope and Grant In consideration for payment of all applicable license fees and subject to the terms and conditions of this Agreement, IPS grants you a revocable, limited and non-exclusive license to install and use the Software and Services on a single installation, accessible via one URL. Access to services, components, software updates and technical support require an active license. All rights in and to the Software and Services are reserved to the use and benefit of IPS and/or its licensors, successors and assigners. (a) Test Installation. You may install and test one additional instance of the Software for the purpose of development and testing. This installation must be and remain isolated and inaccessible to the general public at all times. 3. Restrictions Your license to use the Software and Services is subject to the following terms, conditions and restrictions on use: (a) You may alter and modify the Software’s source code for Your use, subject to this Agreement, however, you may not distribute, publish, resell, or otherwise share the Software or derivative works based on the Software without prior express written consent from IPS. (b) You may not utilize the Software or Services to engage in, facilitate, or otherwise allow others to engage in any activity that violates any law or regulation or the terms and conditions within this Agreement. (c) You are solely responsible for complying with all governmental regulations and policies. You agree to indemnify Us from any loss, action or damage arising from Your failure to use the Software in a manner inconsistent with applicable legislation. (d) You may not remove any copyright or proprietary notices on or within the software’s source code at any time. A copyright removal license may be purchased to remove the public display of the Software’s publicly displayed copyright notice. 4. Intellectual Property We have the sole and exclusive right to the Software which is being licensed, not sold, to you by IPS under the terms and conditions of this agreement. The Software is protected by copyright, trademark and other intellectual property laws. IPS reserves any rights not expressly granted herein. 5. Assignment You may not rent, lease, sell, share or authorize or temporarily assign your rights to the license or this Agreement to another individual or entity except as expressly permitted herein. (a) You may, after six months from the original purchase date, permanently transfer your licensing rights and interest in this Agreement to a third party, provided the license is active and in good standing. Any transfer and reassignment must occur via the mechanisms provided within the invisionpower.com client area and all applicable fees must be paid for the reassignment to be considered valid. (b) You agree to provide this Agreement in its entirety to the assignee prior to reassignment and the assignee must agree to be bound to the terms of this Agreement. (c) You acknowledge that account and non license specific materials and purchases, including, but not limited to: account credits and third party (“marketplace”) add-ons and purchases are non-transferrable under any circumstances. (d) We reserve the right to refuse or reject reassignment at our sole discretion. 6. Termination This Agreement shall remain in effect until terminated. Your rights under this Agreement will automatically terminate without notice from Us in the event you fail to comply with any term or condition within this Agreement. Upon termination of this Agreement, you shall immediately cease all use of the Software and destroy all copies, full or partial, of the Software that may be in your possession or otherwise under your control. 7. Modification We reserve the right to amend or modify the terms of this Agreement at any time, and to change, discontinue or impose conditions on any aspect of the Software or related Service and to provide notification solely by posting an updated version of the Agreement on the invisionpower.com website. You acknowledge that you are solely responsible for regularly reviewing this Agreement and our policies. Continued use of the Software after modification to the Agreement constitutes your binding consent to such changes. 8. Disclaimer of Warranty THE SOFTWARE IS PROVIDED “AS-IS” AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE DISCLAIM ALL OTHER WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, BY STATUTE, COMMON LAW, USAGE OR OTHERWISE, REGARDING THE SOFTWARE AND ANY RELATED SERVICES, INCLUDING THEIR FITNESS FOR A PARTICULAR PURPOSE, THEIR QUALITY, THEIR MERCHANTABILITY, OR THEIR NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SOFTWARE OR ANY RELATED SERVICES IS SECURE, OR IS FREE FROM BUGS, VIRUSES, ERRORS, OR OTHER PROGRAM LIMITATIONS, OR THAT DEFECTS WILL BE CORRECTED. SOME JURISDICTIONS DO NOT ALLOW EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU. THE ENTIRE RISK AS TO THE RESULTS, QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US OR OUR EMPLOYEES, REPRESENTATIVE OR AGENTS OR THROUGH OR FROM THE SOFTWARE OR OUR WEBSITE SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED WITHIN. THIS SECTION WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 9. Limitation of Liability TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WE, OUR SUBSIDIARIES, OFFICERS, DIRECTORS, SHAREHOLDERS, PARTNERS, EMPLOYEES, AGENTS, CONTRACTORS OR OUR SUCCESSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO PERSONAL INJURY OR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, COVER, CONSEQUENTIAL OR OTHER DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, LOSS OF USE, COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, LOSS OF GOODWILL OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO THE USE OF, OR INABILITY TO USE, THE SOFTWARE OR ANY RELATED SERVICES OR CONTENT, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. WITHOUT LIMITING THE FOREGOING, IN NO EVENT SHALL OUR TOTAL LIABILITY TO YOU FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER EXCEED THE AMOUNT PAID BY YOU TO LICENSE THE SOFTWARE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE FOREGOING LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. THESE LIMITATIONS WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 10. Indemnification You agree to fully indemnify and hold us, our successors, officers, directors, shareholders, partners, employees, agents, contracts and our successors harmless from and against any claim, suit, hearing, action, expense or demand, including without limitation to: all claims for damages, fees or costs (including attorneys’ fees), arising out of or related to the use of the Software and/or any related Services by you, your agents or representatives, anyone under your control, or by any third party using your equipment or accounts to use the Software or Services (for purposes of this section, collectively, “you”); the violation by you of any provision of this Agreement; the violation by you and any laws or regulations; or the infringement or misappropriation by you any copyright, trademark or any other intellectual property right, proprietary right, property right or any other right of ours or any third party. We reserve the right to assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will cooperate with us in asserting any available defenses and, as set forth above, be fully responsible for our attorneys’ fees. 11. Governing Law The license and this Agreement are governed by and construed in accordance with the laws of the State of Virginia, United States of America. You hereby consent to exclusive jurisdiction and venue in the County of Bedford and State of Virginia. By agreeing to the terms of this Agreement, you are waiving any claims that you might otherwise have against IPS based on the laws of other jurisdictions. 12. Severability If, for any reason, a court of competent jurisdiction deems any provision or part of this Agreement to be unlawful or unenforceable, the remainder of the Agreement shall remain in full force and effect. \ No newline at end of file +Invision Power Services End User License Agreement + + +1. Acceptance + +This software license agreement (the “Agreement”) is between you (either an individual or entity, hereinafter referred to as “You” or “Your”) and Invision Power Services, Inc. (“IPS”, “We”, “Our” or “Us”) and pertains to the IPS Community Suite software, its components, features, enhancements, updates and modifications (collectively the “Software” or “Suite”) and any related services (“Services”) provided by IPS under this Agreement. By purchasing, downloading, accessing, installing, facilitating the installation or using the Software or Services (or allowing or authorizing any other person to do so) you are warranting that you have the authority provided by your state, country or jurisdiction to enter into a legally binding contract and that you have read and agree to be bound by the terms of this Agreement. You understand and acknowledge that this Agreement comprises the entire agreement between You and IPS. This Agreement supersedes any prior agreements, promises, representations or descriptions. If you do not agree with the terms and conditions set forth hereinafter, you may not purchase, download, access, install or use the Software or Services. This Agreement may only be modified in writing, signed by an officer of IPS and You. 2. License Scope and Grant + +In consideration for payment of all applicable license fees and subject to the terms and conditions of this Agreement, IPS grants you a revocable, limited and non-exclusive license to install and use the Software and Services on a single installation, accessible via one URL. Access to services, components, software updates and technical support require an active license. All rights in and to the Software and Services are reserved to the use and benefit of IPS and/or its licensors, successors and assigners. (a) Test Installation. You may install and test one additional instance of the Software for the purpose of development and testing. This installation must be and remain isolated and inaccessible to the general public at all times. 3. Restrictions Your license to use the Software and Services is subject to the following terms, conditions and restrictions on use: (a) You may alter and modify the Software’s source code for Your use, subject to this Agreement, however, you may not distribute, publish, resell, or otherwise share the Software or derivative works based on the Software without prior express written consent from IPS. + +(b) You may not utilize the Software or Services to engage in, facilitate, or otherwise allow others to engage in any activity that violates any law or regulation or the terms and conditions within this Agreement. (c) You are solely responsible for complying with all governmental regulations and policies. You agree to indemnify Us from any loss, action or damage arising from Your failure to use the Software in a manner inconsistent with applicable legislation. (d) You may not remove any copyright or proprietary notices on or within the software’s source code at any time. A copyright removal license may be purchased to remove the public display of the Software’s publicly displayed copyright notice. + + +4. Intellectual Property + +We have the sole and exclusive right to the Software which is being licensed, not sold, to you by IPS under the terms and conditions of this agreement. The Software is protected by copyright, trademark and other intellectual property laws. IPS reserves any rights not expressly granted herein. 5. Assignment You may not rent, lease, sell, share or authorize or temporarily assign your rights to the license or this Agreement to another individual or entity except as expressly permitted herein. (a) You may, after six months from the original purchase date, permanently transfer your licensing rights and interest in this Agreement to a third party, provided the license is active and in good standing. Any transfer and reassignment must occur via the mechanisms provided within the invisionpower.com client area and all applicable fees must be paid for the reassignment to be considered valid. (b) You agree to provide this Agreement in its entirety to the assignee prior to reassignment and the assignee must agree to be bound to the terms of this Agreement. (c) You acknowledge that account and non license specific materials and purchases, including, but not limited to: account credits and third party (“marketplace”) add-ons and purchases are non-transferrable under any circumstances. (d) We reserve the right to refuse or reject reassignment at our sole discretion. + + +6. Termination + This Agreement shall remain in effect until terminated. Your rights under this Agreement will automatically terminate without notice from Us in the event you fail to comply with any term or condition within this Agreement. Upon termination of this Agreement, you shall immediately cease all use of the Software and destroy all copies, full or partial, of the Software that may be in your possession or otherwise under your control. + + 7. Modification + We reserve the right to amend or modify the terms of this Agreement at any time, and to change, discontinue or impose conditions on any aspect of the Software or related Service and to provide notification solely by posting an updated version of the Agreement on the invisionpower.com website. You acknowledge that you are solely responsible for regularly reviewing this Agreement and our policies. Continued use of the Software after modification to the Agreement constitutes your binding consent to such changes. + + 8. Disclaimer of Warranty + THE SOFTWARE IS PROVIDED “AS-IS” AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE DISCLAIM ALL OTHER WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, BY STATUTE, COMMON LAW, USAGE OR OTHERWISE, REGARDING THE SOFTWARE AND ANY RELATED SERVICES, INCLUDING THEIR FITNESS FOR A PARTICULAR PURPOSE, THEIR QUALITY, THEIR MERCHANTABILITY, OR THEIR NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SOFTWARE OR ANY RELATED SERVICES IS SECURE, OR IS FREE FROM BUGS, VIRUSES, ERRORS, OR OTHER PROGRAM LIMITATIONS, OR THAT DEFECTS WILL BE CORRECTED. SOME JURISDICTIONS DO NOT ALLOW EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU. THE ENTIRE RISK AS TO THE RESULTS, QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US OR OUR EMPLOYEES, REPRESENTATIVE OR AGENTS OR THROUGH OR FROM THE SOFTWARE OR OUR WEBSITE SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED WITHIN. THIS SECTION WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. + + 9. Limitation of Liability TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WE, OUR SUBSIDIARIES, OFFICERS, DIRECTORS, SHAREHOLDERS, PARTNERS, EMPLOYEES, AGENTS, CONTRACTORS OR OUR SUCCESSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO PERSONAL INJURY OR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, COVER, CONSEQUENTIAL OR OTHER DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, LOSS OF USE, COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, LOSS OF GOODWILL OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO THE USE OF, OR INABILITY TO USE, THE SOFTWARE OR ANY RELATED SERVICES OR CONTENT, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. WITHOUT LIMITING THE FOREGOING, IN NO EVENT SHALL OUR TOTAL LIABILITY TO YOU FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER EXCEED THE AMOUNT PAID BY YOU TO LICENSE THE SOFTWARE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE FOREGOING LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. THESE LIMITATIONS WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 10. Indemnification You agree to fully indemnify and hold us, our successors, officers, directors, shareholders, partners, employees, agents, contracts and our successors harmless from and against any claim, suit, hearing, action, expense or demand, including without limitation to: all claims for damages, fees or costs (including attorneys’ fees), arising out of or related to the use of the Software and/or any related Services by you, your agents or representatives, anyone under your control, or by any third party using your equipment or accounts to use the Software or Services (for purposes of this section, collectively, “you”); the violation by you of any provision of this Agreement; the violation by you and any laws or regulations; or the infringement or misappropriation by you any copyright, trademark or any other intellectual property right, proprietary right, property right or any other right of ours or any third party. We reserve the right to assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will cooperate with us in asserting any available defenses and, as set forth above, be fully responsible for our attorneys’ fees. 11. Governing Law The license and this Agreement are governed by and construed in accordance with the laws of the State of Virginia, United States of America. You hereby consent to exclusive jurisdiction and venue in the County of Bedford and State of Virginia. By agreeing to the terms of this Agreement, you are waiving any claims that you might otherwise have against IPS based on the laws of other jurisdictions. 12. Severability If, for any reason, a court of competent jurisdiction deems any provision or part of this Agreement to be unlawful or unenforceable, the remainder of the Agreement shall remain in full force and effect. \ No newline at end of file diff --git a/admin/install/html/global/globalTemplate.phtml b/admin/install/html/global/globalTemplate.phtml index 76dc43dd..11ace738 100644 --- a/admin/install/html/global/globalTemplate.phtml +++ b/admin/install/html/global/globalTemplate.phtml @@ -21,7 +21,7 @@ - +
@@ -85,7 +86,6 @@ Install Guide
{{endif}} -

Nulled by IAF

diff --git a/admin/install/html/global/healthcheck.phtml b/admin/install/html/global/healthcheck.phtml index fe9309c5..99cf214a 100644 --- a/admin/install/html/global/healthcheck.phtml +++ b/admin/install/html/global/healthcheck.phtml @@ -15,8 +15,8 @@

None of these items are required in order to continue with the installation right now. However, they will be required in a future version of IPS Community Suite. You should make a note of them and contact your hosting provider or system administrator after the installation to address them. You can re-run these checks later from the Support section of the Administrator Control Panel.

    - {{foreach $requirements['advice'] as $item}} -
  • {$item}
  • + {{foreach $requirements['advice'] as $key => $item}} +
  • {$item}
  • {{endforeach}}
{{endif}} diff --git a/admin/install/js/multipleRedirect.js b/admin/install/js/multipleRedirect.js index d448e124..eea4ac69 100644 --- a/admin/install/js/multipleRedirect.js +++ b/admin/install/js/multipleRedirect.js @@ -6,6 +6,7 @@ $(function(){ $.ajax( url, { dataType: 'json', + cache: false, timeout: IPS_TIMEOUT !== false ? parseInt( IPS_TIMEOUT * 1000 ) : 30000, complete: function( jqXHR, textStatus ) { diff --git a/admin/install/lang.php b/admin/install/lang.php index f6fbe24e..5f821fd6 100644 --- a/admin/install/lang.php +++ b/admin/install/lang.php @@ -32,8 +32,9 @@ $lang = array( 'err_password_length' => "Passwords must be at least 3 characters", 'requirements_php_version_success' => "PHP version %s.", + 'requirements_php_version_success_53x' => "PHP version %s. Please see advice below", 'requirements_php_version_fail' => "You are running PHP version %s. You need PHP 5.3.0 or above. You should contact your hosting provider or system administrator to ask for an upgrade.", - 'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version 5.4.0 or above.", + 'requirements_php_version_advice' => "You are running PHP version %s which is now end of life.
Please note that IPS Community Suite 4.1.1 and newer will require PHP 5.4.0 as a minimum.
You can continue to install IPS Community Suite 4.1.0 using your current PHP version.", 'requirements_curl_success' => "cURL extension loaded.", 'requirements_curl_fopen' => "fsockopen function available", 'requirements_curl_advice' => "You do not have the cURL PHP extension loaded or it is running a version less than 7.36. While this is not required, it is recommended.", diff --git a/admin/upgrade/html/forms/queries.phtml b/admin/upgrade/html/forms/queries.phtml index e5f89a64..e494df9c 100644 --- a/admin/upgrade/html/forms/queries.phtml +++ b/admin/upgrade/html/forms/queries.phtml @@ -6,7 +6,8 @@
{$query}{{if mb_substr( $query, -1 ) != ';'}};{{endif}}
{{endforeach}}
- {lang="manual_query_auto"} + {{$mr = \IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 'extra' => array( 'lastSqlId' => $_SESSION['lastJsonIndex'] - 0.1 ) ) );}} + {lang="manual_query_auto"}  {lang="or"}  {lang="manual_query_manual"}
\ No newline at end of file diff --git a/admin/upgrade/html/global/globalTemplate.phtml b/admin/upgrade/html/global/globalTemplate.phtml index d0bba944..2154e7a7 100644 --- a/admin/upgrade/html/global/globalTemplate.phtml +++ b/admin/upgrade/html/global/globalTemplate.phtml @@ -21,7 +21,7 @@ - +
@@ -80,7 +81,6 @@ Install Guide
{{endif}} -

Nulled by IAF

diff --git a/admin/upgrade/html/global/healthcheck.phtml b/admin/upgrade/html/global/healthcheck.phtml index eccbfaa2..2fb63378 100644 --- a/admin/upgrade/html/global/healthcheck.phtml +++ b/admin/upgrade/html/global/healthcheck.phtml @@ -28,8 +28,8 @@

None of these items are required in order to continue with the upgrade right now. However, they will be required in a future version of IPS Community Suite. You should make a note of them and contact your hosting provider or system administrator after the upgrade to address them. You can re-run these checks later from the Support section of the Administrator Control Panel.

    - {{foreach $requirements['advice'] as $item}} -
  • {$item}
  • + {{foreach $requirements['advice'] as $key => $item}} +
  • {$item}
  • {{endforeach}}
{{endif}} diff --git a/admin/upgrade/js/multipleRedirect.js b/admin/upgrade/js/multipleRedirect.js index c1fb2480..2275e3d5 100644 --- a/admin/upgrade/js/multipleRedirect.js +++ b/admin/upgrade/js/multipleRedirect.js @@ -6,6 +6,7 @@ $(function(){ $.ajax( url, { dataType: 'json', + cache: false, timeout: IPS_TIMEOUT !== false ? parseInt( IPS_TIMEOUT * 1000 ) : 30000, complete: function( jqXHR, textStatus ) { diff --git a/admin/upgrade/lang.php b/admin/upgrade/lang.php index 78c6f179..0159d85a 100644 --- a/admin/upgrade/lang.php +++ b/admin/upgrade/lang.php @@ -43,7 +43,7 @@ $lang = array( 'login_err_bad_password' => "The password you entered is incorrect. Please try again (make sure your caps lock is off).", 'login_err_locked_unlock' => "Your account has been locked. Try again in {# [1:minute][?:minutes]}.", 'login_err_locked_nounlock' => "Your account has been locked. Try again later.", - 'login_err_no_cookies' => "Your browser does not accept cookies which is required in order to log in.", + 'login_err_no_cookies' => "Your browser does not accept cookies which are required in order to log in.", 'sign_in_with_these' => "Or sign in with one of these services", 'login_err_remote_validate' => "You must validate your account at another site before you can log in successfully. Please click here to validate your account.", 'login_connect_generic_error' => "There was an error processing your login request at one of the sites in our network.", @@ -58,8 +58,9 @@ $lang = array( 'login_live' => "Sign in with Microsoft", 'requirements_php_version_success' => "PHP version %s.", + 'requirements_php_version_success_53x' => "PHP version %s. Please see advice below", 'requirements_php_version_fail' => "You are running PHP version %s. You need PHP 5.3.0 or above. You should contact your hosting provider or system administrator to ask for an upgrade.", - 'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version 5.4.0 or above.", + 'requirements_php_version_advice' => "You are running PHP version %s which is now end of life.
Please note that IPS Community Suite 4.1.1 and newer will require PHP 5.4.0 as a minimum.
You can continue to upgrade to IPS Community Suite 4.1.0 using your current PHP version.", 'requirements_curl_success' => "cURL extension loaded.", 'requirements_curl_fopen' => "fsockopen function available", 'requirements_curl_advice' => "You do not have the cURL PHP extension loaded or it is running a version less than 7.36. While this is not required, it is recommended.", @@ -487,4 +488,13 @@ $lang = array( '100003_no_convert' => "Don't convert", '100003_convert' => "Convert", '100003_convert_desc' => "In this version of IPS Community Suite, members can no longer add other members as friends. However members can follow other members and receive notifications when the members they are following post. You can convert friends to followers, so any members who are friends with another member will now be following them, however this will mean they will start receiving notifications which may be undesired. It is recommended you do not convert.", + + /* ! 101000 revert globalTemplate */ + '101000_globalTemplate_revert' => "Revert custom themes which contain out of date globalTemplate templates?", + '101000_globalTemplate_revert_desc' => "In IPS Community Suite 4.1, the template 'utilitiesMenu' has been removed. This is used within the globalTemplate. After upgrading, you may see a message about the theme being out of date if you do not revert.
Reverting templates will lose any customizations", + '101000_yes' => "Yes, revert losing customiztions", + '101000_no' => "No, I will manually adjust the templates after upgrading", + + /* ! CMS 101000 Options */ + '40000_cms_htmlconversion' => "Pages HTML", ); \ No newline at end of file diff --git a/applications/blog/Application.php b/applications/blog/Application.php index 192b6c43..b3798cf7 100644 --- a/applications/blog/Application.php +++ b/applications/blog/Application.php @@ -49,6 +49,6 @@ class _Application extends \IPS\Application */ protected function get__icon() { - return 'file-text-o'; + return 'file-text'; } } \ No newline at end of file diff --git a/applications/blog/data/acpmenu.json b/applications/blog/data/acpmenu.json index 1b195ed6..a0f7fee7 100644 --- a/applications/blog/data/acpmenu.json +++ b/applications/blog/data/acpmenu.json @@ -1,16 +1,16 @@ { "blogs": { - "blogs": { - "tab": "community", - "controller": "blogs", - "do": "", - "restriction": "blogs_manage" - }, "settings": { "tab": "community", "controller": "settings", "do": "", "restriction": "settings_manage" + }, + "blogs": { + "tab": "community", + "controller": "blogs", + "do": "", + "restriction": "blogs_manage" } } } \ No newline at end of file diff --git a/applications/blog/data/emails.xml b/applications/blog/data/emails.xml index 17045037..d1796740 100644 --- a/applications/blog/data/emails.xml +++ b/applications/blog/data/emails.xml @@ -1,9 +1,9 @@ - - + +