diff --git a/.travis.yml b/.travis.yml index 5bc5f49b2e5..54d937625ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ php: - 5.5 - 5.6 - 7.0 - + matrix: allow_failures: - php: 7.0 @@ -130,6 +130,8 @@ script: - php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log # - cat upgrade370380.log - php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log + - php upgrade.php 3.8.0 3.9.0 ignoredbversion > upgrade380390.log + - php upgrade2.php 3.8.0 3.9.0 ignoredbversion > upgrade380390-2.log # - cat upgrade370380-2.log - cd ../.. - date diff --git a/COPYRIGHT b/COPYRIGHT index 40822059ab0..534770f0f75 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -13,8 +13,10 @@ Component Version License GPL Compatible ------------------------------------------------------------------------------------- PHP libraries: AdoDb-Date 0.33 Modified BSD License Yes Date convertion (not into rpm package) -ChromePHP 4.3.3 Apache Software License 2.0 Yes Return server log to chrome browser console +ChromePHP 4.1.0 Apache Software License 2.0 Yes Return server log to chrome browser console CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG +EvalMath 1.0 BSD Yes Safe math expressions evaluation +FirePHPCore 0.4.0 MIT License Yes Send logs to Firefox Firebug console FPDI 1.5.2 Apache Software License 2.0 Yes PDF templates management GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) Mobiledetect 2.8.3 MIT License Yes Detect mobile devices browsers @@ -22,11 +24,12 @@ NuSoap 0.9.5 LGPL 2.1+ Yes PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files PHPExcel 1.8.0 LGPL-2.1+ Yes Read/Write XLS files, read ODS files -php-iban 1.4.6 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP +php-iban 1.4.7 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests +Raven-php 0.12.1 MIT License Yes Used for server-side error logging with Sentry logger Restler 3.0 LGPL-3+ Yes Library to develop REST Web services TCPDF 6.2.6 LGPL-3+ Yes PDF generation -EvalMath 1.0 BSD Yes Safe math expressions evaluation +TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement JS libraries: jQuery 1.11.3 MIT License Yes JS library @@ -49,7 +52,8 @@ jQuery TableDnD 0.6 GPL and MIT License Yes jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips jsGantt 1.2 BSD License Yes JS library (to build Gantt reports) -JsTimezoneDetect 1.0.4 MIT Licence Yes JS library to detect user timezone +JsTimezoneDetect 1.0.4 MIT License Yes JS library to detect user timezone +Raven.js 1.1.19 MIT License Yes Used for client-side error logging with Sentry logger For licenses compatibility informations: http://www.fsf.org/licensing/licenses/index_html diff --git a/ChangeLog b/ChangeLog index 2c85b48924f..e9bd9ffe3b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,13 @@ Upgrading to any other version or any other database system is abolutely require make a Dolibarr upgrade. +***** ChangeLog for 3.9 compared to 3.8.* ***** + +WARNING: Following changes may create regression for some external modules, but were necessary to make +Dolibarr better: +- Deprecated hidden option MAIN_USE_CUSTOM_TRANSLATION has been removed. Use MAIN_OVERWRITE_TRANS_xx_YY instead. + + ***** ChangeLog for 3.8 compared to 3.7.* ***** For users: FIX: #2519 @@ -239,6 +246,12 @@ FIX: Not showing task extrafields when creating from left menu FIX [ bug #3288 ] Tasks box is not properly drawn FIX [ bug #3211 ] Outstading bill amount of a client showed wrong amounts FIX [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights +FIX [ bug #3426 ] Unable to create an invoice from a contract with extrafields +FIX [ bug #3431 ] Invoice bank account is not respected +FIX [ bug #3432 ] Spaces should be removed from IBAN when formatting it +FIX [ bug #3358 ] Tasks box does not work with PostgreSQL +FIX [ bug #3383 ] Company name is overlapped with company direction in PDF models +FIX [ bug #3460 ] Bank account is not saved when creating a customer invoice and facing an error message NEW: Created new ContratLigne::insert function @@ -265,11 +278,11 @@ FIX send mail, copy sendto don't read the list of contact FIX Properly escape untrusted data to prevent HTML injection. FIX send mail, copy sendto don't read the list of contact -Path to save photos of products was moved in 3.7.0 to match path of other attached files. If you had loose +Path to save photos of products was moved in 3.7.0 to match path of other attached files. If you had loose your photo on the photo tab of products, you can set the constant "PRODUCT_USE_OLD_PATH_FOR_PHOTO" to restore old path. -WARNING: +WARNING: Do not try to make any Dolibarr upgrade if you are running Mysql version 5.5.40. Mysql version 5.5.40 has a very critical bug making your data beeing definitely lost. @@ -279,7 +292,7 @@ make a Dolibarr upgrade. ***** ChangeLog for 3.7 compared to 3.6.* ***** For users: -- New: Match other auth system: Login can be done entering login or user +- New: Match other auth system: Login can be done entering login or user email (this open the road for SSO). - New: Agenda export by project #1967. - New: Increase length of thirdparty to 128 chars. @@ -300,14 +313,14 @@ For users: - New: Can filter on status on interventions. - New: Add help info of field type into dictionary of payment types. - New: Add proposals into referer page of thirdparty. -- New: On contact list can set filter on both active and not active (no more exclusive select). +- New: On contact list can set filter on both active and not active (no more exclusive select). - New: Intervention documents are now available in ECM module. - New: Can attach supplier order to a customer order. -- New: Supervisor is now visible into user list. +- New: Supervisor is now visible into user list. - New: Add user of creation and validation on invoice export. - New: Add info page about browser. - New: Enable feature developed for 3.6 we forgot to enabled: Adding prefix - on uploaded file names. + on uploaded file names. - New: No more dependency between contract and service module. - New: [ task #867 ] Remove ESAEB external module code from core. - New: Can create proposal from an intervention. @@ -338,7 +351,7 @@ For users: Use accesskey on form search. - New: Intervention documents are now available in ECM module. - New: Add attachments on user card + in ECM module. -- New: Can add __PROJECT_REF__ and __TIHRPARTY_NAME__ into email topic or content template. +- New: Can add __PROJECT_REF__ and __TIHRPARTY_NAME__ into email topic or content template. - New: [ task #1204 ] add Numering contrat module free (like leopard in product module). - New: [ task #712 ] Add warning when creating invoice from proposal or order, when there is already one invoice. - New: Enable supplier price log table. @@ -346,8 +359,8 @@ For users: - New: [ task #1218 ] Can drag and drop an event from calendar to change its day. - New: Optimize size of image static resources. - New: Add hourly and daily amount on user card. Add weekly working hours and salary on user card. -- New: Content of predefined email come firstly from table llx_c_email_template, then translation key. -- New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture +- New: Content of predefined email come firstly from table llx_c_email_template, then translation key. +- New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture onto PDF like MAIN_GENERATE_PROPOSALS_WITH_PICTURE dir for proposals. - New: Add more search field in list of cheque deposits. - New: Add feature to order to invoice on supplier part. @@ -450,8 +463,8 @@ Dolibarr better: - Deprecated module "oscommerce" were removed. - Changed the way parameters are provided to scripts sync_xxx_ldap2dolibarr.php - Some field into database were renamed from "libelle" to "label". -- Table llx_c_pays were renamed into llx_c_country. -- Triggers *_BUILDDOC are removed. Building a doc is not a business event. For action after +- Table llx_c_pays were renamed into llx_c_country. +- Triggers *_BUILDDOC are removed. Building a doc is not a business event. For action after creation of a pdf or odt, hook "afterPDFCreation" or "afterODTCreation" must be used instead. - A lot of pages named fiche.php were renamed into card.php - A lot of pages named liste.php were renamed into list.php @@ -612,7 +625,7 @@ For users: - Fix: Add actions events not implemented. - Fix: Price min of composition is not supplier price min by quantity. - Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers. -- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature) +- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature) - New: If multilangue is enabled, mail (from propal, invoice, etc...) message is pre-defaulted in Customer language - Fix: [ bug #1459 ] _ADD_CONTACT and _DEL_CONTACT triggers do not intercept insertion when reported an error - Fix: [ bug #1478 ] BILL_PAYED trigger action does not intercept failure under some circumstances @@ -642,8 +655,8 @@ For developers: - New: A module can disable a standard ECM view. - New: Add multilang support into product webservice. - New: Add hooks on project card page. -- New: Add call_trigger method on CommonObject class. So new trigger call within object is just : -$result = $this->call_trigger($trigger_name, $user) +- New: Add call_trigger method on CommonObject class. So new trigger call within object is just : +$result = $this->call_trigger($trigger_name, $user) WARNING: Following change may create regression for some external modules, but was necessary to make Dolibarr better: diff --git a/build/debian/README.howto b/build/debian/README.howto index 3c111f0a0ec..92397130a3a 100644 --- a/build/debian/README.howto +++ b/build/debian/README.howto @@ -195,7 +195,7 @@ If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VER * Some files are removed from archive by the get-orig-source.sh * Staying into git root directory, run -> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz +> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz --debian-branch=[master|jessie] --upstream-branch=[upstream|upstream-3.5.x] Note: If there was errors solved manually, you may need to make a git commit @@ -208,11 +208,15 @@ Warning: Date must have format reported by "date -R" Warning: Name and email must match value into debian/control file (Entry added here is used by next step). * We try to build package -> rm -fr ../build-area; git-buildpackage -us -uc +> rm -fr ../build-area; +> git-buildpackage -us -uc --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x] +Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-3.5.x] Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match Note: Package is built into directory ../build-area +Note: To compare 2 packages: debdiff package1.dsc package2.dsc + * If package .deb is ok: Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit @@ -220,7 +224,7 @@ Note: If there was errors managed manually, you may need to make a git commit bu * If ok, you can tag. > Edit debian/changelog to replace "UNRELEASED" into "unstable", then push -> git-buildpackage --git-tag-only --git-retag +> git-buildpackage --git-tag-only --git-retag --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x] > git push --tags * Compilation is then done by a debian developer and sent @@ -263,7 +267,7 @@ dolibarr-x.y.z+dfsgw.tgz (x.y.z = version, w start from 1 and is increased for each new git-import-orig already done) * Staying into git root directory, run -> git-import-orig -vv ../dolibarr-x.y.z+dfsgw.tgz +> git-import-orig -vv ../dolibarr-x.y.z+dfsgw.tgz --debian-branch=[master|jessie] --upstream-branch=[upstream|upstream-3.5.x] and enter version when requested with format x.y.z+dfsgw (x.y.z = version, w start from 1 and is increased for each new import) @@ -289,11 +293,14 @@ To update dolibarr debian package when only files into debian has changed Once files has been prepared, it's time to test: * Try to build package -> rm -fr ../build-area; git-buildpackage -us -uc +> rm -fr ../build-area; +> git-buildpackage -us -uc --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x] +Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-3.5.x] Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match Note: Package is built into directory ../build-area +Note: To compare 2 packages: debdiff package1.dsc package2.dsc * Test package (see dedicated chapter to test it with debian unstable env) @@ -303,7 +310,7 @@ Note: If there was errors managed manually, you may need to make a git commit bu * If ok, you can tag. > Edit debian/changelog to replace "UNRELEASED" into "unstable", then push -> git-buildpackage --git-tag-only --git-retag +> git-buildpackage --git-tag-only --git-retag --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x] > git push --tags @@ -321,15 +328,42 @@ http://packages.qa.debian.org ##### Send an unblock request + Use this to move from unstable to testing. -reportbug -B debian + +reportbug -B debian --smtphost=smtp.gmail.com:587 --smtpuser=xxxx --smtppasswd=yyyy --tls Choose package "release.debian.org" Then "unblock" Then name of package "dolibarr" Fill message, for example: "Please unblock package dolibarr -A security error CVE-2014-7137 was reported and is fixed into package 3.5.5. -Note that package 3.5.5 was prepared before the CVE was reported and include other fixes, but they are all related to stability or security (other se$ +A security error CVE-2015-3935 was reported and is fixed into package 3.5.7. +Note that package 3.5.7 contains not only fixed for bugs reported to debian. It includes other fixes, but they are all related to stability or security, +so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935. After discussion with ..., it appears that security holes are enough to request this unblock request." +Use this to request an update of a stable package + +reportbug -B debian --smtphost=smtp.gmail.com:587 --smtpuser=xxxx --smtppasswd=yyyy --tls +Choose package "release.debian.org" +Then "unblock" +Then name of package "dolibarr" +Fill message, for example: +" +A security error CVE-2015-3935 was reported for Dolibarr ERP CRM package. This bug is fixed into official package 3.5.7 of Dolibarr. +Package 3.5.7 is a maintenance release compared to 3.5.5 and contains only fixes. But not only bugs reported to debian, it includes also other fixes (but they are all related to stability or security). +I think it is a better solution to validate this maintenance release based on the new upstream version of Dolibarr than applying a patch of the only CVE-2015-3935. +Pro are: +- It fixes all debian reported bugs (including security one) +- It fixes also stability bugs +- Patches were already tested because deployed and used by several thousands of users. +- It is easier for package maintener to include this official set of fixes than applying one patch after one patch for each debian report or backported each patch into a dedicated version. +- Debian maintenance version matches with official project maintenance version (better when all fixes are not related to the way the software is packaged) +Cons are: +- The patch include more than the only one security reported fxes + +So I just need to know if it's ok to push such a version 3.5.7 (fixes for 3.5.* branch) instead of only one fix for only the few (the only) reported debian bugs, +since it provides more stability and is or me a more secured process. +" + diff --git a/build/debian/apache/dolibarr.conf b/build/debian/apache/dolibarr.conf index 95eaae21190..bdbb6e1b4c3 100644 --- a/build/debian/apache/dolibarr.conf +++ b/build/debian/apache/dolibarr.conf @@ -15,7 +15,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs # Require all granted # # -# Order allow, deny +# Order allow,deny # Allow from all # # @@ -27,7 +27,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs Require all granted - Order allow, deny + Order allow,deny Allow from all diff --git a/build/exe/doliwamp/UsedPort.cpp b/build/exe/doliwamp/UsedPort.cpp index 15d2978b3bb..e2724b831a1 100644 --- a/build/exe/doliwamp/UsedPort.cpp +++ b/build/exe/doliwamp/UsedPort.cpp @@ -277,7 +277,7 @@ help=!(Port > 0); Usage: if (help) { printf("----- %s V%s (c)Laurent Destailleur -----\n",PROG,VERSION); - printf("%s is a software that allows you to know if a TCP/IP port is used\n",PROG); + printf("%s is software that allows you to know if a TCP/IP port is used\n",PROG); printf("%s sources can be compiled for WIN32 (VC++, GCC CYGWIN, MINGW) or for\n"); printf("Unix/Linux (GCC)\n",PROG); printf("\n"); diff --git a/build/generate_filecheck_xml.php b/build/generate_filecheck_xml.php index 04970b667f5..dbe96b4c0e9 100644 --- a/build/generate_filecheck_xml.php +++ b/build/generate_filecheck_xml.php @@ -39,12 +39,14 @@ parse_str($argv[1]); $outputfile=dirname(__FILE__).'/../htdocs/install/filelist.xml'; $fp = fopen($outputfile,'w'); fputs($fp, ''."\n"); -fputs($fp, ''."\n"); -fputs($fp, ''."\n"); -$dir_iterator = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/'); -$iterator = new RecursiveIteratorIterator($dir_iterator); +fputs($fp, ''."\n"); + +fputs($fp, ''."\n"); + +$dir_iterator1 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/'); +$iterator1 = new RecursiveIteratorIterator($dir_iterator1); // need to ignore document custom etc -$files = new RegexIterator($iterator, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); +$files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); $dir=''; $needtoclose=0; foreach ($files as $file) { @@ -61,7 +63,34 @@ foreach ($files as $file) { } } fputs($fp, ''."\n"); -fputs($fp, ''."\n"); +fputs($fp, ''."\n"); + + +fputs($fp, ''."\n"); + +$dir_iterator2 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../scripts/'); +$iterator2 = new RecursiveIteratorIterator($dir_iterator2); +// need to ignore document custom etc +$files = new RegexIterator($iterator2, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); +$dir=''; +$needtoclose=0; +foreach ($files as $file) { + $newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file)); + if ($newdir!=$dir) { + if ($needtoclose) + fputs($fp, ''."\n"); + fputs($fp, ''."\n"); + $dir = $newdir; + $needtoclose=1; + } + if (filetype($file)=="file") { + fputs($fp, ''.md5_file($file).''."\n"); + } +} +fputs($fp, ''."\n"); +fputs($fp, ''."\n"); + + fputs($fp, ''."\n"); fclose($fp); diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 2b31d1f26a6..99ec7b3543a 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -467,6 +467,7 @@ if ($nboftargetok) { # Removed known external modules to avoid any error when packaging from env where external modules are tested $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom/*`; # For custom we want to keep dir + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/allscreens*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/ancotec*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/cabinetmed*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/calling*`; @@ -481,8 +482,8 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/pos*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`; - # Removed other test files $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`; + # Removed other test files $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/eldy/*.new`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/api/explorer`; # This is a dev tool $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`; diff --git a/composer.json b/composer.json index ed75d3ca61d..80e55b6a221 100644 --- a/composer.json +++ b/composer.json @@ -6,27 +6,40 @@ "homepage": "http://www.dolibarr.org", "license": "GPL-3.0+", "support": { - "issues": "https://doliforge.org/projects/dolibarr", + "issues": "https://github.com/Dolibarr/dolibarr/issues", "forum": "http://www.dolibarr.org/forum", - "wiki": "http://wiki.dolibarr.org" + "wiki": "http://wiki.dolibarr.org", + "irc": "irc://chat.freenode.net/dolibarr", + "source": "https://github.com/Dolibarr/dolibarr" }, "require": { "php": ">=5.3.0", - "ext-gd": "*", "ext-curl": "*", - "restler/framework": "3.0.*" + "ccampbell/chromephp": "^4.1", + "ckeditor/ckeditor": "4.3.3", + "mobiledetect/mobiledetectlib": "2.8.3", + "phpoffice/phpexcel": "1.8.0", + "restler/framework": "^3.0", + "tecnick.com/tcpdf": "6.2.6", + "raven/raven": "^0.12.0", + "firephp/firephp-core": "^0.4.0" }, "suggest": { - "ext-mysqli": "*", - "ext-pgsql": "*", - "ext-mssql": "*", - "ext-pdo_sqlite": "*", - "ext-imagick": "*", - "ext-mcrypt": "*", - "ext-openssl": "*", - "ext-mbstring": "*", - "ext-soap": "*", - "ext-zip": "*", - "ext-xml": "*" + "ext-mysqlnd": "To use with MySQL or MariaDB", + "ext-mysqli": "To use with MySQL or MariaDB", + "ext-pgsql": "To use with PostgreSQL", + "ext-mssql": "To use with MSSQL (experimental)", + "ext-pdo_sqlite": "To use with SQLite (experimental)", + "ext-gd": "Image manipulation (Required but maybe built-in PHP)", + "ext-imagick": "Image manipulation (TCPDF)", + "ext-mcrypt": "(Required but maybe built-in PHP)", + "ext-openssl": "Secure connections (Emails, SOAP…)", + "ext-mbstring": "Handle non UTF-8 databases", + "ext-soap": "Native SOAP", + "ext-zip": "ODT and Excel support", + "ext-xml": "Excel support" + }, + "config": { + "vendor-dir": "htdocs/includes" } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000000..f178ec4f419 --- /dev/null +++ b/composer.lock @@ -0,0 +1,441 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "f441e6348ae7862942693cab10810418", + "packages": [ + { + "name": "ccampbell/chromephp", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/ccampbell/chromephp.git", + "reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ccampbell/chromephp/zipball/c3c297615d48ae5b2a86a82311152d1ed095fcef", + "reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef", + "shasum": "" + }, + "require": { + "php": ">=5.0.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ChromePhp": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Craig Campbell", + "email": "iamcraigcampbell@gmail.com", + "homepage": "http://craig.is", + "role": "Developer" + } + ], + "description": "Log variables to the Chrome console (via Chrome Logger Google Chrome extension).", + "homepage": "http://github.com/ccampbell/chromephp", + "keywords": [ + "log", + "logging" + ], + "time": "2013-06-26 03:44:33" + }, + { + "name": "ckeditor/ckeditor", + "version": "4.3.3", + "source": { + "type": "git", + "url": "https://github.com/ckeditor/ckeditor-releases.git", + "reference": "0068dd540ce8bf1815abb7b5455c55354bc56334" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/0068dd540ce8bf1815abb7b5455c55354bc56334", + "reference": "0068dd540ce8bf1815abb7b5455c55354bc56334", + "shasum": "" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+", + "LGPL-2.1+", + "MPL-1.1+" + ], + "authors": [ + { + "name": "CKSource - Frederico Knabben", + "homepage": "http://cksource.com" + } + ], + "description": "JavaScript WYSIWYG web text editor.", + "homepage": "http://ckeditor.com", + "keywords": [ + "CKEditor", + "editor", + "fckeditor", + "html", + "javascript", + "richtext", + "text", + "wysiwyg" + ], + "time": "2014-02-26 15:34:37" + }, + { + "name": "firephp/firephp-core", + "version": "v0.4.0", + "source": { + "type": "git", + "url": "https://github.com/firephp/firephp-core.git", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firephp/firephp-core/zipball/fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/FirePHPCore/FirePHP.class.php", + "lib/FirePHPCore/fb.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "homepage": "http://christophdorn.com" + } + ], + "description": "Traditional FirePHPCore library for sending PHP variables to the browser.", + "homepage": "https://github.com/firephp/firephp-core", + "time": "2013-04-23 15:28:20" + }, + { + "name": "mobiledetect/mobiledetectlib", + "version": "2.8.3", + "source": { + "type": "git", + "url": "https://github.com/serbanghita/Mobile-Detect.git", + "reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f5753e4b90daffe50c902e99df5ce3c58fca3fee", + "reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee", + "shasum": "" + }, + "require": { + "php": ">=5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "classmap": [ + "Mobile_Detect.php" + ], + "psr-0": { + "Detection": "namespaced/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Serban Ghita", + "email": "serbanghita@gmail.com", + "homepage": "http://ghita.org", + "role": "Developer" + } + ], + "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.", + "homepage": "https://github.com/serbanghita/Mobile-Detect", + "keywords": [ + "detect mobile devices", + "mobile", + "mobile detect", + "mobile detector", + "php mobile detect" + ], + "time": "2014-07-10 20:00:25" + }, + { + "name": "phpoffice/phpexcel", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PHPExcel.git", + "reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/e69a5e4d0ffa7fb6f171859e0a04346e580df30b", + "reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "ext-xmlwriter": "*", + "php": ">=5.2.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "PHPExcel": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "http://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker" + }, + { + "name": "Franck Lefevre", + "homepage": "http://blog.rootslabs.net" + }, + { + "name": "Erik Tilt" + } + ], + "description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "http://phpexcel.codeplex.com", + "keywords": [ + "OpenXML", + "excel", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "time": "2014-03-02 15:22:49" + }, + { + "name": "raven/raven", + "version": "0.12.1", + "source": { + "type": "git", + "url": "https://github.com/getsentry/raven-php.git", + "reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getsentry/raven-php/zipball/b325984c792ff89f985b73da9a3ad8ed8b520bca", + "reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.2.4" + }, + "require-dev": { + "fabpot/php-cs-fixer": "^1.8.0", + "phpunit/phpunit": "^4.6.6" + }, + "bin": [ + "bin/raven" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.12.x-dev" + } + }, + "autoload": { + "psr-0": { + "Raven_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "authors": [ + { + "name": "David Cramer", + "email": "dcramer@gmail.com" + } + ], + "description": "A PHP client for Sentry (http://getsentry.com)", + "homepage": "http://getsentry.com", + "keywords": [ + "log", + "logging" + ], + "time": "2015-08-25 22:38:46" + }, + { + "name": "restler/framework", + "version": "3.0.0", + "target-dir": "Luracast/Restler", + "source": { + "type": "git", + "url": "https://github.com/Luracast/Restler-Framework.git", + "reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Luracast/Restler-Framework/zipball/6ee10b3e5dbc6376916fed55ec2340a37cce436b", + "reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "replace": { + "luracast/restler": "3.*" + }, + "require-dev": { + "bshaffer/oauth2-server-php": "v1.0", + "luracast/explorer": "*", + "mustache/mustache": "dev-master", + "rodneyrehm/plist": "dev-master", + "symfony/yaml": "*", + "twig/twig": "v1.13.0", + "zendframework/zendamf": "dev-master" + }, + "suggest": { + "bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)", + "luracast/explorer": "Restler's very own api explorer (see require-dev for details)", + "mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)", + "rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)", + "symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)", + "twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)", + "zendframework/zendamf": "Support for the amf document format (see require-dev for details)" + }, + "type": "library", + "extra": { + "branch-alias": { + "master": "v3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Luracast\\Restler": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Luracast", + "email": "arul@luracast.com" + }, + { + "name": "Nick nickl- Lombard", + "email": "github@jigsoft.co.za" + } + ], + "description": "Just the Restler Framework without the tests and examples", + "homepage": "http://luracast.com/products/restler/", + "keywords": [ + "api", + "framework", + "rest", + "server" + ], + "time": "2015-08-04 07:52:49" + }, + { + "name": "tecnick.com/tcpdf", + "version": "6.2.6", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/TCPDF.git", + "reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb", + "reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "fonts", + "config", + "include", + "tcpdf.php", + "tcpdf_parser.php", + "tcpdf_import.php", + "tcpdf_barcodes_1d.php", + "tcpdf_barcodes_2d.php", + "include/tcpdf_colors.php", + "include/tcpdf_filters.php", + "include/tcpdf_font_data.php", + "include/tcpdf_fonts.php", + "include/tcpdf_images.php", + "include/tcpdf_static.php", + "include/barcodes/datamatrix.php", + "include/barcodes/pdf417.php", + "include/barcodes/qrcode.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPLv3" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "homepage": "http://nicolaasuni.tecnick.com" + } + ], + "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", + "homepage": "http://www.tcpdf.org/", + "keywords": [ + "PDFD32000-2008", + "TCPDF", + "barcodes", + "datamatrix", + "pdf", + "pdf417", + "qrcode" + ], + "time": "2015-01-28 18:51:40" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.3.0", + "ext-curl": "*" + }, + "platform-dev": [] +} diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index bf68293d369..9d449070a5f 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -69,7 +69,7 @@ Add tcpdi.php Add tcpdi_parser.php and replace: require_once(dirname(__FILE__).'/include/tcpdf_filters.php'); with: -require_once(dirname(__FILE__).'/../tcpdf/include/tcpdf_filters.php'); +require_once(dirname(__FILE__).'/../tecnick.com/tcpdf/include/tcpdf_filters.php'); diff --git a/dev/fixdosfiles.sh b/dev/fixdosfiles.sh index 75dde68dcae..f770e28537d 100755 --- a/dev/fixdosfiles.sh +++ b/dev/fixdosfiles.sh @@ -24,7 +24,7 @@ fi # To convert if [ "x$1" = "xfix" ] then - for fic in `find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.txt" -o -iname "*.xml"\) -exec file "{}" + | grep CRLF | awk -F':' '{ print $1 }' ` + for fic in `find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep CRLF | awk -F':' '{ print $1 }' ` do echo "Fix file $fic" dos2unix $fic diff --git a/dev/skeletons/build_class_from_table.php b/dev/skeletons/build_class_from_table.php index 43f29a17ad3..f4f25c84391 100755 --- a/dev/skeletons/build_class_from_table.php +++ b/dev/skeletons/build_class_from_table.php @@ -50,16 +50,16 @@ print "***** $script_file ($version) *****\n"; // -------------------- START OF BUILD_CLASS_FROM_TABLE SCRIPT -------------------- // Check parameters -if (! isset($argv[1]) || (isset($argv[2]) && ! isset($argv[6]))) +if (! isset($argv[1]) || ! isset($argv[2]) || (isset($argv[3]) && ! isset($argv[7]))) { - print "Usage: $script_file tablename [server port databasename user pass]\n"; + print "Usage: $script_file tablename modulename [server port databasename user pass]\n"; exit; } -if (isset($argv[2]) && isset($argv[3]) && isset($argv[4]) && isset($argv[5]) && isset($argv[6])) +if (isset($argv[3]) && isset($argv[4]) && isset($argv[5]) && isset($argv[6]) && isset($argv[7])) { print 'Use specific database ids'."\n"; - $db=getDoliDBInstance('mysqli',$argv[2],$argv[5],$argv[6],$argv[4],$argv[3]); + $db=getDoliDBInstance('mysqli',$argv[3],$argv[6],$argv[7],$argv[5],$argv[4]); } if ($db->type != 'mysql' && $db->type != 'mysqli') @@ -68,14 +68,18 @@ if ($db->type != 'mysql' && $db->type != 'mysqli') exit; } +$table=$argv[1]; +$module=$argv[2]; + // Show parameters -print 'Tablename='.$argv[1]."\n"; -print "Current dir is ".getcwd()."\n"; +print 'Tablename: '.$table."\n"; +print 'Modulename: '.$module."\n"; +print "Current dir: ".getcwd()."\n"; +print "Database name: ".$db->database_name."\n"; // Define array with list of properties $property=array(); -$table=$argv[1]; $foundprimary=0; $resql=$db->DDLDescTable($table); if ($resql) @@ -159,7 +163,7 @@ foreach($property as $key => $prop) // Define working variables $table=strtolower($table); -$tablenoprefix=preg_replace('/'.preg_quote(MAIN_DB_PREFIX).'/i','',$table); +$tablenoprefix=preg_replace('/'.preg_quote(MAIN_DB_PREFIX,'/').'/i','',$table); $classname=preg_replace('/_/','',ucfirst($tablenoprefix)); $classmin=preg_replace('/_/','',strtolower($classname)); @@ -179,11 +183,18 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'.class.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element = \''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element = \''.$tablenoprefix.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -207,8 +218,8 @@ foreach($property as $key => $prop) $varprop.="\n"; } } -$targetcontent=preg_replace('/public \$prop1;/', $varprop, $targetcontent); -$targetcontent=preg_replace('/public \$prop2;/', '', $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('public $prop1;','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('public $prop2;','/').'/', '', $targetcontent); $targetcontent=preg_replace('/\*((\s|\n|\r|\t)*)\@var mixed Sample property 1((\s|\n|\r|\t)*)/', '', $targetcontent); $targetcontent=preg_replace('/\*((\s|\n|\r|\t)*)\@var mixed Sample property 2((\s|\n|\r|\t)*)/', '', $targetcontent); @@ -283,7 +294,7 @@ foreach($property as $key => $prop) elseif ($prop['istime']) { $varprop.='\'.(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':"\'".$this->db->idate('; - $varprop.="\$this->".$prop['field'].""; + $varprop.="\$this->".$prop['field']; $varprop.=").\"'\")"; } elseif ($prop['ischar']) @@ -299,15 +310,14 @@ foreach($property as $key => $prop) elseif ($prop['isint']) { $varprop.='\'.(! isset($this->'.$prop['field'].')?\'NULL\':'; - $varprop.="\$this->".$prop['field'].""; + $varprop.="\$this->".$prop['field']; $varprop.=')'; } else { - $varprop.=' \'.(! isset($this->'.$prop['field'].')?\'NULL\':"\'".'; - $varprop.="\$this->".$prop['field'].""; - $varprop.='.\').'; - + $varprop.='\'.(! isset($this->'.$prop['field'].')?\'NULL\':"\'".'; + $varprop.="\$this->".$prop['field']; + $varprop.='."\'")'; } if ($i < (count($property)-$no_output_field)) $varprop.=".','"; @@ -439,6 +449,7 @@ if ($fp) else $error++; + //-------------------------------- // Build skeleton_script.php //-------------------------------- @@ -458,12 +469,19 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'_script.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/skeleton_script\.php/', $classmin.'_script.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -504,13 +522,19 @@ if (! $sourcecontent) $outfile='out.'.$classmin.'_page.php'; $targetcontent=$sourcecontent; +// Substitute module name +$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent); +$targetcontent=preg_replace('/mymodule/', $module, $targetcontent); + // Substitute class name $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent); $targetcontent=preg_replace('/skeleton_script\.php/', $classmin.'_script.php', $targetcontent); $targetcontent=preg_replace('/\$element = \'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/\$table_element = \'skeleton\'/', '\$table_element=\''.$classmin.'\'', $targetcontent); $targetcontent=preg_replace('/Skeleton_Class/', $classname, $targetcontent); -$targetcontent=preg_replace('/skeleton/', $classname, $targetcontent); +$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent); +$targetcontent=preg_replace('/skeleton/', $classmin, $targetcontent); // Substitute comments $targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent); @@ -520,9 +544,79 @@ $targetcontent=preg_replace('/Put here some comments/','Initialy built by build_ // Substitute table name $targetcontent=preg_replace('/MAIN_DB_PREFIX."mytable/', 'MAIN_DB_PREFIX."'.$tablenoprefix, $targetcontent); +// Substitute GETPOST search_fieldx +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + if ($prop['isint']) $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','int');\n"; + else $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','alpha');\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('$search_field1=GETPOST("search_field1");','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('$search_field2=GETPOST("search_field2");','/').'/', '', $targetcontent); + +// Substitute GETPOST fieldx +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + if ($prop['isint']) $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','int');\n"; + else $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','alpha');\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('$object->prop1=GETPOST("field1");','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('$object->prop2=GETPOST("field2");','/').'/', '', $targetcontent); + // Substitute fetch/select parameters -$targetcontent=preg_replace('/\$sql \.= " t\.field1,";/', $varpropselect, $targetcontent); -$targetcontent=preg_replace('/\$sql \.= " t\.field2";/', '', $targetcontent); +$targetcontent=preg_replace('/\$sql\s*\.= " t\.field1,";/', $varpropselect, $targetcontent); +$targetcontent=preg_replace('/\$sql\s*\.= " t\.field2";/', '', $targetcontent); + +// Substitute where for search +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.='if ($search_'.$prop['field'].') $sql.= natural_search("'.$prop['field'].'",$search_'.$prop['field'].');'."\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote('if ($search_field1) $sql.= natural_search("field1",$search_field1);','/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote('if ($search_field2) $sql.= natural_search("field2",$search_field2);','/').'/', '', $targetcontent); + +// Substitute print_liste_field_titre +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.="print_liste_field_titre(\$langs->trans('".$prop['field']."'),\$_SERVER['PHP_SELF'],'t.".$prop['field']."','',\$param,'',\$sortfield,\$sortorder);\n"; + } +} + +$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field1'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field2'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', '', $targetcontent); + +// Substitute where for .fieldx. +$varprop="\n"; +$cleanparam=''; +foreach($property as $key => $prop) +{ + if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime']) + { + $varprop.="print ''.\$obj->".$prop['field'].".'';\n"; + } +} +$targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field1.'';",'/').'/', $varprop, $targetcontent); +$targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field2.'';",'/').'/', '', $targetcontent); + + // Build file $fp=fopen($outfile,"w"); diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php index 7eebdee8bcd..518b4f4d018 100644 --- a/dev/skeletons/modMyModule.class.php +++ b/dev/skeletons/modMyModule.class.php @@ -193,7 +193,7 @@ class modMyModule extends DolibarrModules // Add here entries to declare new menus // // Example to declare a new Top Menu entry and its Left menu entry: - // $this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu + // $this->menu[$r]=array( 'fk_menu'=>'', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode // 'type'=>'top', // This is a Top menu entry // 'titre'=>'MyModule top menu', // 'mainmenu'=>'mymodule', @@ -208,7 +208,7 @@ class modMyModule extends DolibarrModules // $r++; // // Example to declare a Left Menu entry into an existing Top menu entry: - // $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + // $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode // 'type'=>'left', // This is a Left menu entry // 'titre'=>'MyModule left menu', // 'mainmenu'=>'xxx', @@ -228,11 +228,14 @@ class modMyModule extends DolibarrModules // Example: // $this->export_code[$r]=$this->rights_class.'_'.$r; - // $this->export_label[$r]='CustomersInvoicesAndInvoiceLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + // $this->export_label[$r]='MyModule'; // Translation key (used only if key ExportDataset_xxx_z not found) // $this->export_enabled[$r]='1'; // Condition to show export in list (ie: '$user->id==3'). Set to 1 to always show when module is enabled. - // $this->export_permission[$r]=array(array("facture","facture","export")); + // $this->export_icon[$r]='generic:MyModule'; + // $this->export_permission[$r]=array(array("mymodule","level1","level2")); // $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",'fd.date_end'=>"DateEnd",'fd.fk_product'=>'ProductId','p.ref'=>'ProductRef'); + // $this->export_TypeFields_array[$r]=array('t.date'=>'Date', 't.qte'=>'Numeric', 't.poids'=>'Numeric', 't.fad'=>'Numeric', 't.paq'=>'Numeric', 't.stockage'=>'Numeric', 't.fadparliv'=>'Numeric', 't.livau100'=>'Numeric', 't.forfait'=>'Numeric', 's.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'fd.description'=>"Text",'fd.subprice'=>"Numeric",'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.date_start'=>"Date",'fd.date_end'=>"Date",'fd.special_code'=>'Numeric','fd.product_type'=>"Numeric",'fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text','p.accountancy_code_sell'=>'Text'); // $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'); + // $this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them // $this->export_sql_start[$r]='SELECT DISTINCT '; // $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'facture as f, '.MAIN_DB_PREFIX.'facturedet as fd, '.MAIN_DB_PREFIX.'societe as s)'; // $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)'; diff --git a/dev/skeletons/skeleton_class.class.php b/dev/skeletons/skeleton_class.class.php index 854e4a4fb47..2f8c78556e1 100644 --- a/dev/skeletons/skeleton_class.class.php +++ b/dev/skeletons/skeleton_class.class.php @@ -38,11 +38,6 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; */ class Skeleton_Class extends CommonObject { - /** - * @var DoliDb Database handler - */ - protected $db; - /** * @var string Error code (or message) * @deprecated diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 7665ce9986a..2dd9f08e18f 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -43,8 +43,8 @@ if (! $res && file_exists("../../../dolibarr/htdocs/main.inc.php")) $res=@includ if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only if (! $res) die("Include of main fails"); // Change this following line to use the correct relative path from htdocs -include_once(DOL_DOCUMENT_ROOT.'/core/class/formcompany.class.php'); -dol_include_once('/module/class/skeleton_class.class.php'); +include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'); +dol_include_once('/mymodule/class/skeleton_class.class.php'); // Load traductions files requiredby by page $langs->load("companies"); @@ -56,13 +56,16 @@ $action = GETPOST('action','alpha'); $backtopage = GETPOST('backtopage'); $myparam = GETPOST('myparam','alpha'); +$search_field1=GETPOST("search_field1"); +$search_field2=GETPOST("search_field2"); + // Protection if external user if ($user->societe_id > 0) { //accessforbidden(); } -if (empty($action) && empty($id) && empty($ref)) $action='create'; +if (empty($action) && empty($id) && empty($ref)) $action='list'; // Load object if id or ref is provided as parameter $object=new Skeleton_Class($db); @@ -95,7 +98,7 @@ if (empty($reshook)) { if (GETPOST('cancel')) { - $urltogo=$backtopage?$backtopage:dol_buildpath('/buildingmanagement/list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1); header("Location: ".$urltogo); exit; } @@ -149,7 +152,7 @@ if (empty($reshook)) if (empty($object->ref)) { $error++; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); + setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); } if (! $error) @@ -180,7 +183,7 @@ if (empty($reshook)) if ($result > 0) { // Delete OK - setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); + setEventMessages("RecordDeleted", null, 'mesgs'); header("Location: ".dol_buildpath('/buildingmanagement/list.php',1)); exit; } @@ -225,9 +228,12 @@ jQuery(document).ready(function() { // Part to show a list -if ($action == 'list' || empty($id)) +if ($action == 'list' || (empty($id) && $action != 'create')) { - $sql = "SELECT"; + // Put here content of your page + print load_fiche_titre('PageTitle'); + + $sql = "SELECT"; $sql.= " t.rowid,"; $sql.= " t.field1,"; $sql.= " t.field2"; @@ -238,55 +244,73 @@ if ($action == 'list' || empty($id)) $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."mytable as t"; - $sql.= " WHERE field3 = 'xxx'"; + $sql.= " WHERE 1 = 1"; + if ($search_field1) $sql.= natural_search("field1",$search_field1); + if ($search_field2) $sql.= natural_search("field2",$search_field2); + // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; - $sql.= " ORDER BY field1 ASC"; - - print '
'; - - if (! empty($moreforfilter)) - { - print '
'; - print $moreforfilter; - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print '
'; - } - - print ''."\n"; - - // Fields title - print ''; - print_liste_field_titre($langs->trans('field1'),$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder); - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print ''."\n"; - - // Fields title search - print ''; - print ''; - print ''; - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print ''."\n"; + // Count total nb of records + $nbtotalofrecords = 0; + if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) + { + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); + } + + $sql.= $db->order($sortfield, $sortorder); + $sql.= $db->plimit($conf->liste_limit+1, $offset); + dol_syslog($script_file, LOG_DEBUG); $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); + + $params=''; + $params.= '&search_field1='.urlencode($search_field1); + $params.= '&search_field2='.urlencode($search_field2); + + print_barre_liste($title, $page, $_SERVER["PHP_SELF"],$params,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies'); + + + print ''; + + if (! empty($moreforfilter)) + { + print '
'; + print $moreforfilter; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
'; + } + + print '
'; - print ''; - print ''; - print ''; - print '
'."\n"; + + // Fields title + print ''; + print_liste_field_titre($langs->trans('field1'),$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder); + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print ''."\n"; + + // Fields title search + print ''; + print ''; + print ''; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print ''."\n"; + + $i = 0; while ($i < $num) { @@ -295,11 +319,8 @@ if ($action == 'list' || empty($id)) { // You can use here results print ''; - print ''; + print ''; + print ''; $parameters=array('obj' => $obj); $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; @@ -307,21 +328,22 @@ if ($action == 'list' || empty($id)) } $i++; } + + $db->free($resql); + + $parameters=array('sql' => $sql); + $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print "
'; - print $obj->field1; - print ''; - print $obj->field2; - print ''.$obj->field1.''.$obj->field2.'
\n"; + print "
\n"; + } else { $error++; dol_print_error($db); } - - $db->free($resql); - - $parameters=array('sql' => $sql); - $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print "\n"; - print "\n"; } @@ -329,7 +351,7 @@ if ($action == 'list' || empty($id)) // Part to create if ($action == 'create') { - print_fiche_titre($langs->trans("NewResidence")); + print_fiche_titre($langs->trans("NewSkeleton")); print '
'; print ''; diff --git a/dev/test/testtcpdf.php b/dev/test/testtcpdf.php index 4b8b6f36d53..6b600c630d3 100755 --- a/dev/test/testtcpdf.php +++ b/dev/test/testtcpdf.php @@ -27,8 +27,8 @@ * @since 2008-03-04 */ -require_once('../../htdocs/includes/tcpdf/config/lang/eng.php'); -require_once('../../htdocs/includes/tcpdf/tcpdf.php'); +require_once('../../htdocs/includes/tecnick.com/tcpdf/config/tcpdf_config.php'); +require_once('../../htdocs/includes/tecnick.com/tcpdf/tcpdf.php'); // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); diff --git a/dev/test/testutf.php b/dev/test/testutf.php index 5812b0c8639..f60f9d195a3 100644 --- a/dev/test/testutf.php +++ b/dev/test/testutf.php @@ -47,8 +47,8 @@ print 'Files has been created. Check its name from your explorer'."\n"; * @since 2008-09-15 */ -require_once('../../htdocs/includes/tcpdf/config/lang/eng.php'); -require_once('../../htdocs/includes/tcpdf/tcpdf.php'); +require_once('../../htdocs/includes/tecnick.com/tcpdf/config/tcpdf_config.php'); +require_once('../../htdocs/includes/tecnick.com/tcpdf/tcpdf.php'); // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); diff --git a/htdocs/.gitignore b/htdocs/.gitignore index e26ae1a0f45..b0b84be129e 100644 --- a/htdocs/.gitignore +++ b/htdocs/.gitignore @@ -1,7 +1,11 @@ +/allscreens* /ancot* /bootstrap* +/dolimed* +/ecommerce* /extensions* /google* +/lead /multicompany* /ndf* /numberingpack* @@ -11,4 +15,3 @@ /teclib* /test.php /ultimatepdf* -/lead diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index bff9dbe4265..a56701dada2 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -106,7 +106,7 @@ llxHeader('', $langs->trans("ListAccounts")); $pcgver = $conf->global->CHARTOFACCOUNTS; $sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.pcg_subtype, aa.account_number, aa.account_parent , aa.label, aa.active "; -$sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa, " . MAIN_DB_PREFIX . "accounting_system as asy"; +$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa, " . MAIN_DB_PREFIX . "accounting_system as asy"; $sql .= " WHERE aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $pcgver; @@ -173,11 +173,12 @@ if ($result) { print ''; print ''; - $var = true; + $var = false; $accountstatic=new AccountingAccount($db); - while ( $i < min($num, $limit) ) { + while ( $i < min($num, $limit) ) + { $obj = $db->fetch_object($resql); $accountstatic->id=$obj->rowid; diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 3da29bd9cc1..6ba6c05208a 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -4,7 +4,7 @@ * Copyright (C) 2014 Florian Henry * Copyright (C) 2014 Marcos García * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2015 Jean-François Ferry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,8 +43,12 @@ if (!$user->admin) $action = GETPOST('action', 'alpha'); -// Other parameters ACCOUNTING_EXPORT_* -$list = array ( +// Parameters ACCOUNTING_EXPORT_* +$main_option = array ( + 'ACCOUNTING_EXPORT_PREFIX_SPEC' +); + +$model_option = array ( 'ACCOUNTING_EXPORT_SEPARATORCSV', 'ACCOUNTING_EXPORT_DATE', 'ACCOUNTING_EXPORT_PIECE', @@ -60,10 +64,18 @@ $list = array ( if ($action == 'update') { $error = 0; + $format = GETPOST('format', 'alpha'); $modelcsv = GETPOST('modelcsv', 'int'); + + if (! empty($format)) { + if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_FORMAT', $format, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } else { + $error ++; + } if (! empty($modelcsv)) { - if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) { $error ++; } @@ -71,7 +83,15 @@ if ($action == 'update') { $error ++; } - foreach ( $list as $constname ) { + foreach ($main_option as $constname) { + $constvalue = GETPOST($constname, 'alpha'); + + if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { + $error ++; + } + } + + foreach ($model_option as $constname) { $constvalue = GETPOST($constname, 'alpha'); if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { @@ -99,15 +119,74 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup $head = admin_accounting_prepare_head(); -dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron'); print ''; print ''; print ''; -print ''; +dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron'); + $var = true; +/* + * Main Options + */ +print '
'; +print ''; +print ''; +print "\n"; + +$var = ! $var; + +print ''; +print ''; +if (! $conf->use_javascript_ajax) +{ + print '"; +} +else +{ + print ''; +} +print ""; + +$num = count($main_option); +if ($num) +{ + foreach ($main_option as $key) { + $var = ! $var; + + print ''; + + // Param + $label = $langs->trans($key); + print ''; + + // Value + print ''; + } +} + +print "
' . $langs->trans('MainOptions') . '
' . $langs->trans("Selectformat") . ''; + print $langs->trans("NotAvailableWhenAjaxDisabled"); + print "'; + $listformat=array( + 'csv'=>$langs->trans("csv"), + 'txt'=>$langs->trans("txt") + ); + print $form->selectarray("format",$listformat,$conf->global->ACCOUNTING_EXPORT_FORMAT,0); + + print '
' . $label . ''; + print ''; + print '
\n"; + +print "
\n"; + +/* + * Export model + */ +print ''; + print ''; print ''; print ''; @@ -142,8 +221,8 @@ print "
\n"; * Parameters */ -$num = count($list); -if ($num) +$num2 = count($model_option); +if ($num2) { print '
' . $langs->trans("Modelcsv") . '
'; print ''; @@ -151,7 +230,7 @@ if ($num) print "\n"; if ($conf->global->ACCOUNTING_EXPORT_MODELCSV > 1) print ''; - foreach ( $list as $key ) { + foreach ($model_option as $key) { $var = ! $var; print ''; @@ -169,7 +248,9 @@ if ($num) print "
' . $langs->trans('OptionsDeactivatedForThisExportModel') . '
\n"; } -print '
'; +dol_fiche_end(); + +print '
'; print ''; diff --git a/htdocs/accountancy/admin/importaccounts.php b/htdocs/accountancy/admin/importaccounts.php index e81557d0522..61e86b7df19 100644 --- a/htdocs/accountancy/admin/importaccounts.php +++ b/htdocs/accountancy/admin/importaccounts.php @@ -124,7 +124,7 @@ if ($result) { print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index fc8994c4836..44b2268dc06 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -157,12 +157,13 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup $head = admin_accounting_prepare_head($accounting); -dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron'); print ''; print ''; print ''; +dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron'); + print '
' . $langs->trans("accountingaccount") . '
' . $langs->trans("AccountAccouting") . '' . $langs->trans("label") . '' . $langs->trans("Accountparent") . '' . $langs->trans("Pcgtype") . '
'; // Cas du parametre ACCOUNTING_MODE @@ -291,7 +292,11 @@ print ''; print "
\n"; -print '

'; +dol_fiche_end(); + +print '
'; + print ''; + llxFooter(); $db->close(); diff --git a/htdocs/accountancy/admin/journaux.php b/htdocs/accountancy/admin/journal.php similarity index 95% rename from htdocs/accountancy/admin/journaux.php rename to htdocs/accountancy/admin/journal.php index e2359ebd8ee..e1d4894788a 100644 --- a/htdocs/accountancy/admin/journaux.php +++ b/htdocs/accountancy/admin/journal.php @@ -22,7 +22,7 @@ */ /** - * \file htdocs/accountancy/admin/journaux.php + * \file htdocs/accountancy/admin/journal.php * \ingroup Accounting Expert * \brief Setup page to configure accounting expert module */ @@ -87,12 +87,12 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup $head = admin_accounting_prepare_head(null); -dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron'); - print '
'; print ''; print ''; +dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron'); + print ''; print ''; print ''; @@ -115,10 +115,9 @@ foreach ( $list as $key ) { print "
' . $langs->trans('Journaux') . '
\n"; -print '
'; -print '
'; -print '
'; +print '
'; + print ''; print ''; @@ -164,9 +163,12 @@ $db->free($resql); print "
\n"; -print ''; +dol_fiche_end(); + +print '
'; + +print ''; -print '
'; llxFooter(); $db->close(); \ No newline at end of file diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 315c9f55325..d79d14e74d1 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -212,11 +212,11 @@ $pcgver = $conf->global->CHARTOFACCOUNTS; IF ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') { $sql .= " p.accountancy_code_buy ='' OR p.accountancy_code_buy IS NULL"; $sql .= " OR (p.accountancy_code_buy IS NOT NULL AND p.accountancy_code_buy != '' AND p.accountancy_code_buy NOT IN - (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; + (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accounting_account as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; } else { $sql .= " p.accountancy_code_sell ='' OR p.accountancy_code_sell IS NULL "; $sql .= " OR (p.accountancy_code_sell IS NOT NULL AND p.accountancy_code_sell != '' AND p.accountancy_code_sell NOT IN - (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; + (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accounting_account as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; } $sql .= ")"; @@ -287,8 +287,9 @@ if ($result) { print '' . $langs->trans("Accountancy_code_sell_suggest") . ''; } // print_liste_field_titre(''); - print '' . $langs->trans("Ventilate") . '
/' . ''; + print_liste_field_titre($langs->trans("Ventilate") . '
/ '); print ''; + print ''; print ''; print ''; @@ -359,7 +360,7 @@ if ($result) { // print '' . $compta_prodbuy . ''; // TODO: we shoul set a user defined value to adjust user square / wide screen size // $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50; - print ''; + print ''; print $form->select_account($compta_prodbuy_id, 'codeventil_'.$product_static->id, 1); print ''; } else { @@ -369,7 +370,7 @@ if ($result) { // TODO: replace by select // TODO: we shoul set a user defined value to adjust user square / wide screen size // $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50; - print ''; + print ''; print $form->select_account($compta_prodsell_id, 'codeventil_'.$product_static->id, 1); print ''; } diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index cb7787610f8..856306c3304 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -72,7 +72,7 @@ class AccountingAccount extends CommonObject if ($rowid || $account_number) { $sql = "SELECT rowid, datec, tms, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, fk_user_author, fk_user_modif, active"; - $sql.= " FROM " . MAIN_DB_PREFIX . "accountingaccount WHERE"; + $sql.= " FROM " . MAIN_DB_PREFIX . "accounting_account WHERE"; if ($rowid) { $sql .= " rowid = '" . $rowid . "'"; } elseif ($account_number) { @@ -114,7 +114,7 @@ class AccountingAccount extends CommonObject } /** - * Insert line in accountingaccount + * Insert line in accounting_account * * @param User $user Use making action * @param int $notrigger Disable triggers @@ -148,7 +148,7 @@ class AccountingAccount extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accountingaccount("; + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_account("; $sql .= "datec"; $sql .= ", entity"; @@ -186,7 +186,7 @@ class AccountingAccount extends CommonObject } if (! $error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accountingaccount"); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accounting_account"); // if (! $notrigger) { // Uncomment this and change MYOBJECT to your own tag if you @@ -225,7 +225,7 @@ class AccountingAccount extends CommonObject { $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount "; + $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; $sql .= " SET fk_pcg_version = " . ($this->fk_pcg_version ? "'" . $this->db->escape($this->fk_pcg_version) . "'" : "null"); $sql .= " , pcg_type = " . ($this->pcg_type ? "'" . $this->db->escape($this->pcg_type) . "'" : "null"); $sql .= " , pcg_subtype = " . ($this->pcg_subtype ? "'" . $this->db->escape($this->pcg_subtype) . "'" : "null"); @@ -313,7 +313,7 @@ class AccountingAccount extends CommonObject // } if (! $error) { - $sql = "DELETE FROM " . MAIN_DB_PREFIX . "accountingaccount"; + $sql = "DELETE FROM " . MAIN_DB_PREFIX . "accounting_account"; $sql .= " WHERE rowid=" . $this->id; dol_syslog(get_class($this) . "::delete sql=" . $sql); @@ -375,7 +375,7 @@ class AccountingAccount extends CommonObject function info($id) { $sql = 'SELECT a.rowid, a.datec, a.fk_user_author, a.fk_user_modif, a.tms'; - $sql .= ' FROM ' . MAIN_DB_PREFIX . 'accountingaccount as a'; + $sql .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as a'; $sql .= ' WHERE a.rowid = ' . $id; dol_syslog(get_class($this) . '::info sql=' . $sql); @@ -417,7 +417,7 @@ class AccountingAccount extends CommonObject if ($result > 0) { $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount "; + $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; $sql .= "SET active = '0'"; $sql .= " WHERE rowid = ".$this->db->escape($id); @@ -447,7 +447,7 @@ class AccountingAccount extends CommonObject { $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount "; + $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; $sql .= "SET active = '1'"; $sql .= " WHERE rowid = ".$this->db->escape($id); diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index a36ca8c1825..374767fe411 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Olivier Geffroy - * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -225,6 +225,8 @@ class BookKeeping extends CommonObject */ function create($user='') { + global $conf; + $this->piece_num = 0; // first check if line not yet in bookkeeping @@ -278,13 +280,45 @@ class BookKeeping extends CommonObject $this->date_create = $now; } - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping (doc_date, "; - $sql .= "doc_type, doc_ref,fk_doc,fk_docdet,code_tiers,numero_compte,label_compte,"; - $sql .= "debit,credit,montant,sens,fk_user_author,import_key,code_journal,piece_num)"; - $sql .= " VALUES ('" . $this->doc_date . "','" . $this->doc_type . "','" . $this->doc_ref . "'," . $this->fk_doc . ","; - $sql .= $this->fk_docdet . ",'" . $this->code_tiers . "','" . $this->numero_compte . "','" . $this->db->escape($this->label_compte) . "',"; - $sql .= $this->debit . "," . $this->credit . "," . $this->montant . ",'" . $this->sens . "'," . $user->id . ", '"; - $sql .= $this->date_create . "','" . $this->code_journal . "'," . $this->piece_num . ")"; + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping ("; + + $sql .= "doc_date"; + $sql .= ", doc_type"; + $sql .= ", doc_ref"; + $sql .= ", fk_doc"; + $sql .= ", fk_docdet"; + $sql .= ", code_tiers"; + $sql .= ", numero_compte"; + $sql .= ", label_compte"; + $sql .= ", debit"; + $sql .= ", credit"; + $sql .= ", montant"; + $sql .= ", sens"; + $sql .= ", fk_user_author"; + $sql .= ", import_key"; + $sql .= ", code_journal"; + $sql .= ", piece_num"; + + $sql .= ") VALUES ("; + + $sql .= "'" . $this->doc_date . "'"; + $sql .= ",'" . $this->doc_type . "'"; + $sql .= ",'" . $this->doc_ref . "'"; + $sql .= "," . $this->fk_doc; + $sql .= "," . $this->fk_docdet; + $sql .= ",'" . $this->code_tiers . "'"; + $sql .= ",'" . $this->numero_compte . "'"; + $sql .= ",'" . $this->db->escape($this->label_compte) . "'"; + $sql .= "," . $this->debit; + $sql .= "," . $this->credit; + $sql .= "," . $this->montant; + $sql .= ",'" . $this->sens . "'"; + $sql .= ",'" . $this->fk_user_author."'"; + $sql .= ",'" . $this->date_create . "'"; + $sql .= ",'" . $this->code_journal . "'"; + $sql .= "," . $this->piece_num; + + $sql .= ")"; dol_syslog(get_class($this) . ":: create sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); @@ -296,19 +330,19 @@ class BookKeeping extends CommonObject $result = 0; } else { $result = - 2; - dol_syslog("BookKeeping::Create Erreur $result lecture ID"); + dol_syslog("BookKeeping::Create Error $result lecture ID"); } } else { $result = - 1; - dol_syslog("BookKeeping::Create Erreur $result INSERT Mysql"); + dol_syslog("BookKeeping::Create Error $result INSERT Mysql"); } } else { $result = - 3; - dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql"); + dol_syslog("BookKeeping::Create Error $result SELECT Mysql"); } } else { $result = - 5; - dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql"); + dol_syslog("BookKeeping::Create Error $result SELECT Mysql"); } return $result; diff --git a/htdocs/accountancy/class/html.formventilation.class.php b/htdocs/accountancy/class/html.formventilation.class.php index b86c0fdd2e2..de94d645c92 100644 --- a/htdocs/accountancy/class/html.formventilation.class.php +++ b/htdocs/accountancy/class/html.formventilation.class.php @@ -94,7 +94,7 @@ class FormVentilation extends Form * @param array $event Event options * @param int $select_in $selectid value is a aa.rowid (0 default) or aa.account_number (1) * @param int $select_out set value returned by select 0=rowid (default), 1=account_number - * @param int $aabase set accountingaccount base class to display empty=all or from 1 to 8 will display only account beginning by + * @param int $aabase set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by * * @return string String with HTML select */ @@ -105,7 +105,7 @@ class FormVentilation extends Form $out = ''; $sql = "SELECT DISTINCT aa.account_number, aa.label, aa.rowid, aa.fk_pcg_version"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; $sql .= " AND aa.active = 1"; @@ -132,7 +132,7 @@ class FormVentilation extends Form if ($select_in == 1 ) $select_value_in = $obj->account_number; if ($select_out == 0 ) $select_value_out = $obj->rowid; if ($select_out == 1 ) $select_value_out = $obj->account_number; - // Remember guy's we store in database llx_facturedet the rowid of accountingaccount and not the account_number + // Remember guy's we store in database llx_facturedet the rowid of accounting_account and not the account_number // Because same account_number can be share between different accounting_system and do have the same meaning if (($selectid != '') && $selectid == $select_value_in) { // $out .= ''; @@ -171,7 +171,7 @@ class FormVentilation extends Form $out = ''; $sql = "SELECT DISTINCT pcg_type "; - $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; $sql .= " ORDER BY pcg_type"; @@ -227,7 +227,7 @@ class FormVentilation extends Form $out = ''; $sql = "SELECT DISTINCT pcg_subtype "; - $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; $sql .= " ORDER BY pcg_subtype"; diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 03f6b817101..74083cbb215 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -85,7 +85,7 @@ if (! empty($id)) { $sql .= " l.fk_code_ventilation, aa.account_number, aa.label"; $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as l"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON l.fk_code_ventilation = aa.rowid"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON l.fk_code_ventilation = aa.rowid"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = l.fk_facture"; $sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 24c0e81587f..e4c6104fd1b 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -65,12 +65,12 @@ if ($action == 'validatehistory') { if ($db->type == 'pgsql') { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; $sql1 .= " SET fd.fk_code_ventilation = accnt.rowid"; - $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; + $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; $sql1 .= " AND fd.fk_code_ventilation = 0"; } else { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; + $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; $sql1 .= " SET fd.fk_code_ventilation = accnt.rowid"; $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; @@ -154,7 +154,7 @@ $sql .= " ROUND(SUM(IF(MONTH(f.datef)=12,fd.total_ht,0)),2) AS 'Decembre',"; $sql .= " ROUND(SUM(fd.total_ht),2) as 'Total'"; $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON aa.rowid = fd.fk_code_ventilation"; +$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; $sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; $sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index ba7d35cee70..01f34e700cc 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -154,7 +154,7 @@ print ''."\n"; + } + + print '
'; print ''; print ''; - print_fiche_titre($langs->trans("NewVATPayment")); - + print '
'; + print '
'; + print $langs->trans("Type").':   '; + print '
'; + print ''; + print '   '; + print ''; + print '
'; + print "
\n"; + dol_fiche_head(); print ''; @@ -202,7 +242,12 @@ if ($action == 'create') print ''; // Label - print ''; + if ($refund == 1) { + $label = $langs->trans("VATRefund"); + } else { + $label = $langs->trans("VATPayment"); + } + print ''; // Amount print ''; diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index a938087c689..68aeeebc2c8 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -1,7 +1,7 @@ * Copyright (C) 2004-2008 Laurent Destailleur - * Copyright (C) 2011-2014 Alexandre Spangaro + * Copyright (C) 2011-2015 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -508,7 +508,7 @@ class Tva extends CommonObject $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label")); return -3; } - if ($this->amount < 0 || $this->amount == '') + if ($this->amount == '') { $this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount")); return -4; @@ -577,8 +577,12 @@ class Tva extends CommonObject $result=$acc->fetch($this->accountid); if ($result <= 0) dol_print_error($this->db); - $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user); - + if ($this->amount > 0) { + $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user); + } else { + $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, abs($this->amount), '', '', $user); + } + // Update fk_bank into llx_tva. So we know vat line used to generate bank transaction if ($bank_line_id > 0) { diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index a45437b3a39..9778d0c8a71 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -646,7 +646,7 @@ else print ''; + print ''; } else { diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index ade96390a76..f3c0b9bd3f5 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -168,9 +168,9 @@ class Contact extends CommonObject $sql.= " ".($user->id > 0 ? "'".$user->id."'":"null").","; $sql.= " ".$this->priv.","; $sql.= " ".$this->statut.","; - $sql.= " ".(! empty($this->canvas)?"'".$this->canvas."'":"null").","; + $sql.= " ".(! empty($this->canvas)?"'".$this->db->escape($this->canvas)."'":"null").","; $sql.= " ".$conf->entity.","; - $sql.= "'".$this->db->escape($this->ref_ext)."',"; + $sql.= "'".$this->db->escape($this->ref_ext)."',"; $sql.= " ".(! empty($this->import_key)?"'".$this->import_key."'":"null"); $sql.= ")"; @@ -516,9 +516,10 @@ class Contact extends CommonObject */ function fetch($id, $user=0, $ref_ext='') { - dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); global $langs; + dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG); + if (empty($id) && empty($ref_ext)) { $this->error='BadParameter'; @@ -547,7 +548,6 @@ class Contact extends CommonObject if ($id) $sql.= " WHERE c.rowid = ". $id; elseif ($ref_ext) $sql .= " WHERE c.ref_ext = '".$this->db->escape($ref_ext)."'"; - dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $resql=$this->db->query($sql); if ($resql) { diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 1d2e3355b24..429547ed602 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -97,34 +97,19 @@ $permissiondellink=$user->rights->contrat->creer; // Used by the include of acti * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once - -include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once - -if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) +$parameters = array('socid' => $socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +if (empty($reshook)) { - $result = $object->active_line($user, GETPOST('ligne'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment')); - - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else { - setEventMessage($object->error,'errors'); - } -} - -else if ($action == 'confirm_closeline' && $confirm == 'yes' && $user->rights->contrat->activer) -{ - if (! GETPOST('dateend')) + include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once + + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once + + if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) { - $error++; - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),'errors'); - } - if (! $error) - { - $result = $object->close_line($user, GETPOST('ligne'), GETPOST('dateend'), urldecode(GETPOST('comment'))); + $result = $object->active_line($user, GETPOST('ligne'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment')); + if ($result > 0) { header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); @@ -134,602 +119,604 @@ else if ($action == 'confirm_closeline' && $confirm == 'yes' && $user->rights->c setEventMessage($object->error,'errors'); } } -} - -// Si ajout champ produit predefini -if (GETPOST('mode')=='predefined') -{ - $date_start=''; - $date_end=''; - if (GETPOST('date_startmonth') && GETPOST('date_startday') && GETPOST('date_startyear')) - { - $date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); - } - if (GETPOST('date_endmonth') && GETPOST('date_endday') && GETPOST('date_endyear')) - { - $date_end=dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); - } -} - -// Si ajout champ produit libre -if (GETPOST('mode')=='libre') -{ - $date_start_sl=''; - $date_end_sl=''; - if (GETPOST('date_start_slmonth') && GETPOST('date_start_slday') && GETPOST('date_start_slyear')) - { - $date_start_sl=dol_mktime(GETPOST('date_start_slhour'), GETPOST('date_start_slmin'), 0, GETPOST('date_start_slmonth'), GETPOST('date_start_slday'), GETPOST('date_start_slyear')); - } - if (GETPOST('date_end_slmonth') && GETPOST('date_end_slday') && GETPOST('date_end_slyear')) - { - $date_end_sl=dol_mktime(GETPOST('date_end_slhour'), GETPOST('date_end_slmin'), 0, GETPOST('date_end_slmonth'), GETPOST('date_end_slday'), GETPOST('date_end_slyear')); - } -} - -// Param dates -$date_contrat=''; -$date_start_update=''; -$date_end_update=''; -$date_start_real_update=''; -$date_end_real_update=''; -if (GETPOST('date_start_updatemonth') && GETPOST('date_start_updateday') && GETPOST('date_start_updateyear')) -{ - $date_start_update=dol_mktime(GETPOST('date_start_updatehour'), GETPOST('date_start_updatemin'), 0, GETPOST('date_start_updatemonth'), GETPOST('date_start_updateday'), GETPOST('date_start_updateyear')); -} -if (GETPOST('date_end_updatemonth') && GETPOST('date_end_updateday') && GETPOST('date_end_updateyear')) -{ - $date_end_update=dol_mktime(GETPOST('date_end_updatehour'), GETPOST('date_end_updatemin'), 0, GETPOST('date_end_updatemonth'), GETPOST('date_end_updateday'), GETPOST('date_end_updateyear')); -} -if (GETPOST('date_start_real_updatemonth') && GETPOST('date_start_real_updateday') && GETPOST('date_start_real_updateyear')) -{ - $date_start_real_update=dol_mktime(GETPOST('date_start_real_updatehour'), GETPOST('date_start_real_updatemin'), 0, GETPOST('date_start_real_updatemonth'), GETPOST('date_start_real_updateday'), GETPOST('date_start_real_updateyear')); -} -if (GETPOST('date_end_real_updatemonth') && GETPOST('date_end_real_updateday') && GETPOST('date_end_real_updateyear')) -{ - $date_end_real_update=dol_mktime(GETPOST('date_end_real_updatehour'), GETPOST('date_end_real_updatemin'), 0, GETPOST('date_end_real_updatemonth'), GETPOST('date_end_real_updateday'), GETPOST('date_end_real_updateyear')); -} -if (GETPOST('remonth') && GETPOST('reday') && GETPOST('reyear')) -{ - $datecontrat = dol_mktime(GETPOST('rehour'), GETPOST('remin'), 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); -} - -// Add contract -if ($action == 'add' && $user->rights->contrat->creer) -{ - // Check - if (empty($datecontrat)) + + else if ($action == 'confirm_closeline' && $confirm == 'yes' && $user->rights->contrat->activer) { - $error++; - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")),'errors'); - $action='create'; + if (! GETPOST('dateend')) + { + $error++; + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")),'errors'); + } + if (! $error) + { + $result = $object->close_line($user, GETPOST('ligne'), GETPOST('dateend'), urldecode(GETPOST('comment'))); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else + { + setEventMessage($object->error,'errors'); + } + } } - - if ($socid<1) + + // Si ajout champ produit predefini + if (GETPOST('mode')=='predefined') { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Customer")),'errors'); - $action='create'; - $error++; - } - - // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); - if ($ret < 0) { - $error ++; - $action = 'create'; - } - - if (! $error) - { - $object->socid = $socid; - $object->date_contrat = $datecontrat; - - $object->commercial_suivi_id = GETPOST('commercial_suivi_id','int'); - $object->commercial_signature_id = GETPOST('commercial_signature_id','int'); - - $object->note_private = GETPOST('note_private','alpha'); - $object->note_public = GETPOST('note_public','alpha'); - $object->fk_project = GETPOST('projectid','int'); - $object->remise_percent = GETPOST('remise_percent','alpha'); - $object->ref = GETPOST('ref','alpha'); - $object->ref_supplier = GETPOST('ref_supplier','alpha'); - - // If creation from another object of another module (Example: origin=propal, originid=1) - if ($_POST['origin'] && $_POST['originid']) + $date_start=''; + $date_end=''; + if (GETPOST('date_startmonth') && GETPOST('date_startday') && GETPOST('date_startyear')) { - // Parse element/subelement (ex: project_task) - $element = $subelement = $_POST['origin']; - if (preg_match('/^([^_]+)_([^_]+)/i',$_POST['origin'],$regs)) - { - $element = $regs[1]; - $subelement = $regs[2]; - } - - // For compatibility - if ($element == 'order') { $element = $subelement = 'commande'; } - if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } - - $object->origin = $_POST['origin']; - $object->origin_id = $_POST['originid']; - - // Possibility to add external linked objects with hooks - $object->linked_objects[$object->origin] = $object->origin_id; - if (is_array($_POST['other_linked_objects']) && ! empty($_POST['other_linked_objects'])) - { - $object->linked_objects = array_merge($object->linked_objects, $_POST['other_linked_objects']); - } - - $id = $object->create($user); - if ($id < 0) { - setEventMessage($object->error,'errors'); - } - - if ($id > 0) - { - dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); - - $classname = ucfirst($subelement); - $srcobject = new $classname($db); - - dol_syslog("Try to find source object origin=".$object->origin." originid=".$object->origin_id." to add lines"); - $result=$srcobject->fetch($object->origin_id); - if ($result > 0) - { - $srcobject->fetch_thirdparty(); - $lines = $srcobject->lines; - if (empty($lines) && method_exists($srcobject,'fetch_lines')) - { - $srcobject->fetch_lines(); - $lines = $srcobject->lines; - } - - $fk_parent_line=0; - $num=count($lines); - - for ($i=0;$i<$num;$i++) - { - $product_type=($lines[$i]->product_type?$lines[$i]->product_type:0); - - if ($product_type == 1 || (! empty($conf->global->CONTRACT_SUPPORT_PRODUCTS) && in_array($product_type, array(0,1)))) { // TODO Exclude also deee - // service prédéfini - if ($lines[$i]->fk_product > 0) - { - $product_static = new Product($db); - - // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + $date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); + } + if (GETPOST('date_endmonth') && GETPOST('date_endday') && GETPOST('date_endyear')) + { + $date_end=dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); + } + } + + // Si ajout champ produit libre + if (GETPOST('mode')=='libre') + { + $date_start_sl=''; + $date_end_sl=''; + if (GETPOST('date_start_slmonth') && GETPOST('date_start_slday') && GETPOST('date_start_slyear')) + { + $date_start_sl=dol_mktime(GETPOST('date_start_slhour'), GETPOST('date_start_slmin'), 0, GETPOST('date_start_slmonth'), GETPOST('date_start_slday'), GETPOST('date_start_slyear')); + } + if (GETPOST('date_end_slmonth') && GETPOST('date_end_slday') && GETPOST('date_end_slyear')) + { + $date_end_sl=dol_mktime(GETPOST('date_end_slhour'), GETPOST('date_end_slmin'), 0, GETPOST('date_end_slmonth'), GETPOST('date_end_slday'), GETPOST('date_end_slyear')); + } + } + + // Param dates + $date_contrat=''; + $date_start_update=''; + $date_end_update=''; + $date_start_real_update=''; + $date_end_real_update=''; + if (GETPOST('date_start_updatemonth') && GETPOST('date_start_updateday') && GETPOST('date_start_updateyear')) + { + $date_start_update=dol_mktime(GETPOST('date_start_updatehour'), GETPOST('date_start_updatemin'), 0, GETPOST('date_start_updatemonth'), GETPOST('date_start_updateday'), GETPOST('date_start_updateyear')); + } + if (GETPOST('date_end_updatemonth') && GETPOST('date_end_updateday') && GETPOST('date_end_updateyear')) + { + $date_end_update=dol_mktime(GETPOST('date_end_updatehour'), GETPOST('date_end_updatemin'), 0, GETPOST('date_end_updatemonth'), GETPOST('date_end_updateday'), GETPOST('date_end_updateyear')); + } + if (GETPOST('date_start_real_updatemonth') && GETPOST('date_start_real_updateday') && GETPOST('date_start_real_updateyear')) + { + $date_start_real_update=dol_mktime(GETPOST('date_start_real_updatehour'), GETPOST('date_start_real_updatemin'), 0, GETPOST('date_start_real_updatemonth'), GETPOST('date_start_real_updateday'), GETPOST('date_start_real_updateyear')); + } + if (GETPOST('date_end_real_updatemonth') && GETPOST('date_end_real_updateday') && GETPOST('date_end_real_updateyear')) + { + $date_end_real_update=dol_mktime(GETPOST('date_end_real_updatehour'), GETPOST('date_end_real_updatemin'), 0, GETPOST('date_end_real_updatemonth'), GETPOST('date_end_real_updateday'), GETPOST('date_end_real_updateyear')); + } + if (GETPOST('remonth') && GETPOST('reday') && GETPOST('reyear')) + { + $datecontrat = dol_mktime(GETPOST('rehour'), GETPOST('remin'), 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); + } + + // Add contract + if ($action == 'add' && $user->rights->contrat->creer) + { + // Check + if (empty($datecontrat)) + { + $error++; + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")),'errors'); + $action='create'; + } + + if ($socid<1) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Customer")),'errors'); + $action='create'; + $error++; + } + + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + if ($ret < 0) { + $error ++; + $action = 'create'; + } + + if (! $error) + { + $object->socid = $socid; + $object->date_contrat = $datecontrat; + + $object->commercial_suivi_id = GETPOST('commercial_suivi_id','int'); + $object->commercial_signature_id = GETPOST('commercial_signature_id','int'); + + $object->note_private = GETPOST('note_private','alpha'); + $object->note_public = GETPOST('note_public','alpha'); + $object->fk_project = GETPOST('projectid','int'); + $object->remise_percent = GETPOST('remise_percent','alpha'); + $object->ref = GETPOST('ref','alpha'); + $object->ref_supplier = GETPOST('ref_supplier','alpha'); + + // If creation from another object of another module (Example: origin=propal, originid=1) + if ($_POST['origin'] && $_POST['originid']) + { + // Parse element/subelement (ex: project_task) + $element = $subelement = $_POST['origin']; + if (preg_match('/^([^_]+)_([^_]+)/i',$_POST['origin'],$regs)) + { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order') { $element = $subelement = 'commande'; } + if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } + + $object->origin = $_POST['origin']; + $object->origin_id = $_POST['originid']; + + // Possibility to add external linked objects with hooks + $object->linked_objects[$object->origin] = $object->origin_id; + if (is_array($_POST['other_linked_objects']) && ! empty($_POST['other_linked_objects'])) + { + $object->linked_objects = array_merge($object->linked_objects, $_POST['other_linked_objects']); + } + + $id = $object->create($user); + if ($id < 0) { + setEventMessage($object->error,'errors'); + } + + if ($id > 0) + { + dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); + + $classname = ucfirst($subelement); + $srcobject = new $classname($db); + + dol_syslog("Try to find source object origin=".$object->origin." originid=".$object->origin_id." to add lines"); + $result=$srcobject->fetch($object->origin_id); + if ($result > 0) + { + $srcobject->fetch_thirdparty(); + $lines = $srcobject->lines; + if (empty($lines) && method_exists($srcobject,'fetch_lines')) + { + $srcobject->fetch_lines(); + $lines = $srcobject->lines; + } + + $fk_parent_line=0; + $num=count($lines); + + for ($i=0;$i<$num;$i++) + { + $product_type=($lines[$i]->product_type?$lines[$i]->product_type:0); + + if ($product_type == 1 || (! empty($conf->global->CONTRACT_SUPPORT_PRODUCTS) && in_array($product_type, array(0,1)))) { // TODO Exclude also deee + // service prédéfini + if ($lines[$i]->fk_product > 0) { - $prod = new Product($db); - $prod->id=$lines[$i]->fk_product; - $prod->getMultiLangs(); - - $outputlangs = $langs; - $newlang=''; - if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); - if (empty($newlang)) $newlang=$srcobject->thirdparty->default_lang; - if (! empty($newlang)) + $product_static = new Product($db); + + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($newlang); + $prod = new Product($db); + $prod->id=$lines[$i]->fk_product; + $prod->getMultiLangs(); + + $outputlangs = $langs; + $newlang=''; + if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); + if (empty($newlang)) $newlang=$srcobject->thirdparty->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["libelle"])) ? $prod->multilangs[$outputlangs->defaultlang]["libelle"] : $lines[$i]->product_label; } - - $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["libelle"])) ? $prod->multilangs[$outputlangs->defaultlang]["libelle"] : $lines[$i]->product_label; + else + { + $label = $lines[$i]->product_label; + } + + if ($conf->global->PRODUIT_DESC_IN_FORM) + $desc .= ($lines[$i]->desc && $lines[$i]->desc!=$lines[$i]->libelle)?dol_htmlentitiesbr($lines[$i]->desc):''; } - else - { - $label = $lines[$i]->product_label; - } - - if ($conf->global->PRODUIT_DESC_IN_FORM) - $desc .= ($lines[$i]->desc && $lines[$i]->desc!=$lines[$i]->libelle)?dol_htmlentitiesbr($lines[$i]->desc):''; + else { + $desc = dol_htmlentitiesbr($lines[$i]->desc); + } + + $result = $object->addline( + $desc, + $lines[$i]->subprice, + $lines[$i]->qty, + $lines[$i]->tva_tx, + $lines[$i]->localtax1_tx, + $lines[$i]->localtax2_tx, + $lines[$i]->fk_product, + $lines[$i]->remise_percent, + $lines[$i]->date_start, + $lines[$i]->date_end, + 'HT', + 0, + $lines[$i]->info_bits, + $lines[$i]->fk_fournprice, + $lines[$i]->pa_ht, + array(), + $lines[$i]->fk_unit + ); + + if ($result < 0) + { + $error++; + break; + } + } - else { - $desc = dol_htmlentitiesbr($lines[$i]->desc); - } - - $result = $object->addline( - $desc, - $lines[$i]->subprice, - $lines[$i]->qty, - $lines[$i]->tva_tx, - $lines[$i]->localtax1_tx, - $lines[$i]->localtax2_tx, - $lines[$i]->fk_product, - $lines[$i]->remise_percent, - $lines[$i]->date_start, - $lines[$i]->date_end, - 'HT', - 0, - $lines[$i]->info_bits, - $lines[$i]->fk_fournprice, - $lines[$i]->pa_ht, - array(), - $lines[$i]->fk_unit - ); - - if ($result < 0) - { - $error++; - break; - } - + } + } + else + { + setEventMessage($srcobject->error,'errors'); + $error++; + } + } + else + { + setEventMessage($object->error,'errors'); + $error++; + } + } + else + { + $result = $object->create($user); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else { + setEventMessage($object->error,'errors'); + } + $action='create'; + } + } + } + + else if ($action == 'classin' && $user->rights->contrat->creer) + { + $object->setProject(GETPOST('projectid')); + } + + // Add a new line + else if ($action == 'addline' && $user->rights->contrat->creer) + { + // Set if we used free entry or predefined product + $predef=''; + $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); + if (GETPOST('prod_entry_mode') == 'free') + { + $idprod=0; + $price_ht = GETPOST('price_ht'); + $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); + } + else + { + $idprod=GETPOST('idprod', 'int'); + $price_ht = ''; + $tva_tx = ''; + } + + $qty = GETPOST('qty'.$predef); + $remise_percent=GETPOST('remise_percent'.$predef); + + if ($qty == '') + { + setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Qty")),'errors'); + $error++; + } + if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && empty($product_desc)) + { + setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Description")),'errors'); + $error++; + } + + // Extrafields + $extrafieldsline = new ExtraFields($db); + $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef); + // Unset extrafield + if (is_array($extralabelsline)) { + // Get extra fields + foreach ($extralabelsline as $key => $value) { + unset($_POST["options_" . $key]); + } + } + + if (! $error) + { + // Clean parameters + $date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); + $date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); + $price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT'); + + // Ecrase $pu par celui du produit + // Ecrase $desc par celui du produit + // Ecrase $txtva par celui du produit + // Ecrase $base_price_type par celui du produit + if ($idprod > 0) + { + $prod = new Product($db); + $prod->fetch($idprod); + + $tva_tx = get_default_tva($mysoc,$object->thirdparty,$prod->id); + $tva_npr = get_default_npr($mysoc,$object->thirdparty,$prod->id); + $pu_ht = $prod->price; + $pu_ttc = $prod->price_ttc; + $price_min = $prod->price_min; + $price_base_type = $prod->price_base_type; + + // On defini prix unitaire + if ($conf->global->PRODUIT_MULTIPRICES && $object->thirdparty->price_level) + { + $pu_ht = $prod->multiprices[$object->thirdparty->price_level]; + $pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level]; + $price_min = $prod->multiprices_min[$object->thirdparty->price_level]; + $price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level]; + } + elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) + { + require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; + + $prodcustprice = new Productcustomerprice($db); + + $filter = array('t.fk_product' => $prod->id,'t.fk_soc' => $object->thirdparty->id); + + $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); + if ($result) { + if (count($prodcustprice->lines) > 0) { + $pu_ht = price($prodcustprice->lines [0]->price); + $pu_ttc = price($prodcustprice->lines [0]->price_ttc); + $price_base_type = $prodcustprice->lines [0]->price_base_type; + $prod->tva_tx = $prodcustprice->lines [0]->tva_tx; } + } + } + + // On reevalue prix selon taux tva car taux tva transaction peut etre different + // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + if ($tva_tx != $prod->tva_tx) + { + if ($price_base_type != 'HT') + { + $pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU'); + } + else + { + $pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU'); } } - else - { - setEventMessage($srcobject->error,'errors'); - $error++; - } + + $desc=$prod->description; + $desc=dol_concatdesc($desc,$product_desc); + $fk_unit = $prod->fk_unit; + } + else + { + $pu_ht=GETPOST('price_ht'); + $price_base_type = 'HT'; + $tva_tx=GETPOST('tva_tx')?str_replace('*','',GETPOST('tva_tx')):0; // tva_tx field may be disabled, so we use vat rate 0 + $tva_npr=preg_match('/\*/',GETPOST('tva_tx'))?1:0; + $desc=$product_desc; + $fk_unit= GETPOST('units', 'alpha'); + } + + $localtax1_tx=get_localtax($tva_tx,1,$object->thirdparty); + $localtax2_tx=get_localtax($tva_tx,2,$object->thirdparty); + + // ajout prix achat + $fk_fournprice = $_POST['fournprice']; + if ( ! empty($_POST['buying_price']) ) + $pa_ht = $_POST['buying_price']; + else + $pa_ht = null; + + $info_bits=0; + if ($tva_npr) $info_bits |= 0x01; + + if($price_min && (price2num($pu_ht)*(1-price2num($remise_percent)/100) < price2num($price_min))) + { + $object->error = $langs->trans("CantBeLessThanMinPrice",price(price2num($price_min,'MU'),0,$langs,0,0,-1,$conf->currency)); + $result = -1 ; + } + else + { + // Insert line + $result = $object->addline( + $desc, + $pu_ht, + $qty, + $tva_tx, + $localtax1_tx, + $localtax2_tx, + $idprod, + $remise_percent, + $date_start, + $date_end, + $price_base_type, + $pu_ttc, + $info_bits, + $fk_fournprice, + $pa_ht, + $array_options, + $fk_unit + ); + } + + if ($result > 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang = GETPOST('lang_id','alpha'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + unset($_POST ['prod_entry_mode']); + + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + unset($_POST ['np_marginRate']); + unset($_POST ['np_markRate']); + unset($_POST['dp_desc']); + unset($_POST['idprod']); + + unset($_POST['date_starthour']); + unset($_POST['date_startmin']); + unset($_POST['date_startsec']); + unset($_POST['date_startday']); + unset($_POST['date_startmonth']); + unset($_POST['date_startyear']); + unset($_POST['date_endhour']); + unset($_POST['date_endmin']); + unset($_POST['date_endsec']); + unset($_POST['date_endday']); + unset($_POST['date_endmonth']); + unset($_POST['date_endyear']); } else { - setEventMessage($object->error,'errors'); - $error++; + setEventMessage($object->error,'errors'); + } + } + } + + else if ($action == 'updateligne' && $user->rights->contrat->creer && ! GETPOST('cancel')) + { + $objectline = new ContratLigne($db); + if ($objectline->fetch(GETPOST('elrowid'))) + { + $db->begin(); + + if ($date_start_real_update == '') $date_start_real_update=$objectline->date_ouverture; + if ($date_end_real_update == '') $date_end_real_update=$objectline->date_cloture; + + $localtax1_tx=get_localtax(GETPOST('eltva_tx'),1,$object->thirdparty); + $localtax2_tx=get_localtax(GETPOST('eltva_tx'),2,$object->thirdparty); + + // ajout prix d'achat + $fk_fournprice = $_POST['fournprice']; + if ( ! empty($_POST['buying_price']) ) + $pa_ht = $_POST['buying_price']; + else + $pa_ht = null; + + $fk_unit = GETPOST('unit', 'alpha'); + + $objectline->description=GETPOST('product_desc'); + $objectline->price_ht=GETPOST('elprice'); + $objectline->subprice=GETPOST('elprice'); + $objectline->qty=GETPOST('elqty'); + $objectline->remise_percent=GETPOST('elremise_percent'); + $objectline->tva_tx=GETPOST('eltva_tx')?GETPOST('eltva_tx'):0; // Field may be disabled, so we use vat rate 0 + $objectline->localtax1_tx=$localtax1_tx; + $objectline->localtax2_tx=$localtax2_tx; + $objectline->date_ouverture_prevue=$date_start_update; + $objectline->date_ouverture=$date_start_real_update; + $objectline->date_fin_validite=$date_end_update; + $objectline->date_cloture=$date_end_real_update; + $objectline->fk_user_cloture=$user->id; + $objectline->fk_fournprice=$fk_fournprice; + $objectline->pa_ht=$pa_ht; + + if ($fk_unit > 0) { + $objectline->fk_unit = GETPOST('unit'); + } else { + $objectline->fk_unit = null; + } + + // Extrafields + $extrafieldsline = new ExtraFields($db); + $extralabelsline = $extrafieldsline->fetch_name_optionals_label($objectline->table_element); + $array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef); + $objectline->array_options=$array_options; + + // TODO verifier price_min si fk_product et multiprix + + $result=$objectline->update($user); + if ($result > 0) + { + $db->commit(); + } + else + { + setEventMessage($objectline->error,'errors'); + $db->rollback(); } } else { - $result = $object->create($user); - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else { - setEventMessage($object->error,'errors'); - } - $action='create'; - } - } -} - -else if ($action == 'classin' && $user->rights->contrat->creer) -{ - $object->setProject(GETPOST('projectid')); -} - -// Add a new line -else if ($action == 'addline' && $user->rights->contrat->creer) -{ - // Set if we used free entry or predefined product - $predef=''; - $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); - if (GETPOST('prod_entry_mode') == 'free') - { - $idprod=0; - $price_ht = GETPOST('price_ht'); - $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); - } - else - { - $idprod=GETPOST('idprod', 'int'); - $price_ht = ''; - $tva_tx = ''; - } - - $qty = GETPOST('qty'.$predef); - $remise_percent=GETPOST('remise_percent'.$predef); - - if ($qty == '') - { - setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Qty")),'errors'); - $error++; - } - if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && empty($product_desc)) - { - setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Description")),'errors'); - $error++; - } - - // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef); - // Unset extrafield - if (is_array($extralabelsline)) { - // Get extra fields - foreach ($extralabelsline as $key => $value) { - unset($_POST["options_" . $key]); - } - } - - if (! $error) - { - // Clean parameters - $date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); - $date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); - $price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT'); - - // Ecrase $pu par celui du produit - // Ecrase $desc par celui du produit - // Ecrase $txtva par celui du produit - // Ecrase $base_price_type par celui du produit - if ($idprod > 0) - { - $prod = new Product($db); - $prod->fetch($idprod); - - $tva_tx = get_default_tva($mysoc,$object->thirdparty,$prod->id); - $tva_npr = get_default_npr($mysoc,$object->thirdparty,$prod->id); - $pu_ht = $prod->price; - $pu_ttc = $prod->price_ttc; - $price_min = $prod->price_min; - $price_base_type = $prod->price_base_type; - - // On defini prix unitaire - if ($conf->global->PRODUIT_MULTIPRICES && $object->thirdparty->price_level) - { - $pu_ht = $prod->multiprices[$object->thirdparty->price_level]; - $pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level]; - $price_min = $prod->multiprices_min[$object->thirdparty->price_level]; - $price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level]; - } - elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) - { - require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; - - $prodcustprice = new Productcustomerprice($db); - - $filter = array('t.fk_product' => $prod->id,'t.fk_soc' => $object->thirdparty->id); - - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); - if ($result) { - if (count($prodcustprice->lines) > 0) { - $pu_ht = price($prodcustprice->lines [0]->price); - $pu_ttc = price($prodcustprice->lines [0]->price_ttc); - $price_base_type = $prodcustprice->lines [0]->price_base_type; - $prod->tva_tx = $prodcustprice->lines [0]->tva_tx; - } - } - } - - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). - if ($tva_tx != $prod->tva_tx) - { - if ($price_base_type != 'HT') - { - $pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU'); - } - else - { - $pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU'); - } - } - - $desc=$prod->description; - $desc=dol_concatdesc($desc,$product_desc); - $fk_unit = $prod->fk_unit; - } - else - { - $pu_ht=GETPOST('price_ht'); - $price_base_type = 'HT'; - $tva_tx=GETPOST('tva_tx')?str_replace('*','',GETPOST('tva_tx')):0; // tva_tx field may be disabled, so we use vat rate 0 - $tva_npr=preg_match('/\*/',GETPOST('tva_tx'))?1:0; - $desc=$product_desc; - $fk_unit= GETPOST('units', 'alpha'); - } - - $localtax1_tx=get_localtax($tva_tx,1,$object->thirdparty); - $localtax2_tx=get_localtax($tva_tx,2,$object->thirdparty); - - // ajout prix achat - $fk_fournprice = $_POST['fournprice']; - if ( ! empty($_POST['buying_price']) ) - $pa_ht = $_POST['buying_price']; - else - $pa_ht = null; - - $info_bits=0; - if ($tva_npr) $info_bits |= 0x01; - - if($price_min && (price2num($pu_ht)*(1-price2num($remise_percent)/100) < price2num($price_min))) - { - $object->error = $langs->trans("CantBeLessThanMinPrice",price(price2num($price_min,'MU'),0,$langs,0,0,-1,$conf->currency)); - $result = -1 ; - } - else - { - // Insert line - $result = $object->addline( - $desc, - $pu_ht, - $qty, - $tva_tx, - $localtax1_tx, - $localtax2_tx, - $idprod, - $remise_percent, - $date_start, - $date_end, - $price_base_type, - $pu_ttc, - $info_bits, - $fk_fournprice, - $pa_ht, - $array_options, - $fk_unit - ); - } - - if ($result > 0) - { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang = GETPOST('lang_id','alpha'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - unset($_POST ['prod_entry_mode']); - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['price_ttc']); - unset($_POST['tva_tx']); - unset($_POST['product_ref']); - unset($_POST['product_label']); - unset($_POST['product_desc']); - unset($_POST['fournprice']); - unset($_POST['buying_price']); - unset($_POST ['np_marginRate']); - unset($_POST ['np_markRate']); - unset($_POST['dp_desc']); - unset($_POST['idprod']); - - unset($_POST['date_starthour']); - unset($_POST['date_startmin']); - unset($_POST['date_startsec']); - unset($_POST['date_startday']); - unset($_POST['date_startmonth']); - unset($_POST['date_startyear']); - unset($_POST['date_endhour']); - unset($_POST['date_endmin']); - unset($_POST['date_endsec']); - unset($_POST['date_endday']); - unset($_POST['date_endmonth']); - unset($_POST['date_endyear']); - } - else - { - setEventMessage($object->error,'errors'); - } - } -} - -else if ($action == 'updateligne' && $user->rights->contrat->creer && ! GETPOST('cancel')) -{ - $objectline = new ContratLigne($db); - if ($objectline->fetch(GETPOST('elrowid'))) - { - $db->begin(); - - if ($date_start_real_update == '') $date_start_real_update=$objectline->date_ouverture; - if ($date_end_real_update == '') $date_end_real_update=$objectline->date_cloture; - - $localtax1_tx=get_localtax(GETPOST('eltva_tx'),1,$object->thirdparty); - $localtax2_tx=get_localtax(GETPOST('eltva_tx'),2,$object->thirdparty); - - // ajout prix d'achat - $fk_fournprice = $_POST['fournprice']; - if ( ! empty($_POST['buying_price']) ) - $pa_ht = $_POST['buying_price']; - else - $pa_ht = null; - - $fk_unit = GETPOST('unit', 'alpha'); - - $objectline->description=GETPOST('product_desc'); - $objectline->price_ht=GETPOST('elprice'); - $objectline->subprice=GETPOST('elprice'); - $objectline->qty=GETPOST('elqty'); - $objectline->remise_percent=GETPOST('elremise_percent'); - $objectline->tva_tx=GETPOST('eltva_tx')?GETPOST('eltva_tx'):0; // Field may be disabled, so we use vat rate 0 - $objectline->localtax1_tx=$localtax1_tx; - $objectline->localtax2_tx=$localtax2_tx; - $objectline->date_ouverture_prevue=$date_start_update; - $objectline->date_ouverture=$date_start_real_update; - $objectline->date_fin_validite=$date_end_update; - $objectline->date_cloture=$date_end_real_update; - $objectline->fk_user_cloture=$user->id; - $objectline->fk_fournprice=$fk_fournprice; - $objectline->pa_ht=$pa_ht; - - if ($fk_unit > 0) { - $objectline->fk_unit = GETPOST('unit'); - } else { - $objectline->fk_unit = null; + setEventMessage($objectline->error,'errors'); } - - // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($objectline->table_element); - $array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef); - $objectline->array_options=$array_options; - - // TODO verifier price_min si fk_product et multiprix - - $result=$objectline->update($user); - if ($result > 0) - { - $db->commit(); - } - else - { - setEventMessage($objectline->error,'errors'); - $db->rollback(); - } - } - else - { - setEventMessage($objectline->error,'errors'); - } -} - -else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->contrat->creer) -{ - $result = $object->deleteline(GETPOST('lineid'),$user); - - if ($result >= 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else - { - setEventMessage($object->error,'errors'); - } -} - -else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->contrat->creer) -{ - $result = $object->validate($user); -} - -// Close all lines -else if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer) -{ - $object->cloture($user); -} - -else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer) -{ - $result=$object->delete($user); - if ($result >= 0) - { - header("Location: index.php"); - return; } - else + + else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->contrat->creer) { - setEventMessage($object->error,'errors'); + $result = $object->deleteline(GETPOST('lineid'),$user); + + if ($result >= 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else + { + setEventMessage($object->error,'errors'); + } } -} - -else if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contrat->creer) -{ - if (GETPOST('newcid') > 0) + + else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->contrat->creer) { - $contractline = new ContratLigne($db); - $result=$contractline->fetch(GETPOST('lineid')); - $contractline->fk_contrat = GETPOST('newcid'); - $result=$contractline->update($user,1); + $result = $object->validate($user); + } + + // Close all lines + else if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer) + { + $object->cloture($user); + } + + else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer) + { + $result=$object->delete($user); if ($result >= 0) { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); + header("Location: index.php"); return; } else @@ -737,162 +724,181 @@ else if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contra setEventMessage($object->error,'errors'); } } - else + + else if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contrat->creer) { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")),'errors'); - } -} else if ($action == 'update_extras') { - // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute')); - if ($ret < 0) - $error ++; - - if (! $error) { - - $result = $object->insertExtraFields(); - if ($result < 0) { - $error ++; - } - } else if ($reshook < 0) - $error ++; - - if ($error) { - $action = 'edit_extras'; - setEventMessage($object->error,'errors'); - } -} elseif ($action=='setref_supplier') { - $cancelbutton = GETPOST('cancel'); - - if (!$cancelbutton) { - - $result = $object->fetch($id); - if ($result < 0) { - setEventMessage($object->errors, 'errors'); - } - - $result = $object->setValueFrom('ref_supplier',GETPOST('ref_supplier','alpha')); - if ($result < 0) { - setEventMessage($object->errors, 'errors'); - $action = 'editref_supplier'; - } else { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - } - else { - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id); - exit; - } -} elseif ($action=='setref') { - $cancelbutton = GETPOST('cancel'); - - if (!$cancelbutton) { - $result = $object->fetch($id); - if ($result < 0) { - setEventMessage($object->errors, 'errors'); - } - - $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));; - if ($result < 0) { - setEventMessage($object->errors, 'errors'); - $action = 'editref'; - } else { - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id); - exit; - } - } - else { - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id); - exit; - } -} - -// Generation doc (depuis lien ou depuis cartouche doc) -else if ($action == 'builddoc' && $user->rights->contrat->creer) { - if (GETPOST('model')) { - $object->setDocModel($user, GETPOST('model')); - } - - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) { - $outputlangs = new Translate("", $conf); - $newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret = $object->fetch($id); // Reload to get new records - $result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - if ($result <= 0) - { - setEventMessages($object->error, $object->errors, 'errors'); - $action=''; - } -} - -// Remove file in doc form -else if ($action == 'remove_file' && $user->rights->contrat->creer) { - if ($object->id > 0) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - $langs->load("other"); - $upload_dir = $conf->contrat->dir_output; - $file = $upload_dir . '/' . GETPOST('file'); - $ret = dol_delete_file($file, 0, 0, 0, $object); - if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file'))); - else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors'); - } -} - -if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->contrat->creer) -{ - if ($action == 'addcontact') - { - $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); - $result = $object->add_contact($contactid, GETPOST('type'), GETPOST('source')); - - if ($result >= 0) + if (GETPOST('newcid') > 0) { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else - { - if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') + $contractline = new ContratLigne($db); + $result=$contractline->fetch(GETPOST('lineid')); + $contractline->fk_contrat = GETPOST('newcid'); + $result=$contractline->update($user,1); + if ($result >= 0) { - $langs->load("errors"); - setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"),'errors'); + header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); + return; } else { setEventMessage($object->error,'errors'); } } - } - - // bascule du statut d'un contact - else if ($action == 'swapstatut') - { - $result=$object->swapContactStatus(GETPOST('ligne')); - } - - // Efface un contact - else if ($action == 'deletecontact') - { - $result = $object->delete_contact(GETPOST('lineid')); - - if ($result >= 0) + else { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")),'errors'); } - else { + } else if ($action == 'update_extras') { + // Fill array 'array_options' with data from update form + $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); + $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute')); + if ($ret < 0) + $error ++; + + if (! $error) { + + $result = $object->insertExtraFields(); + if ($result < 0) { + $error ++; + } + } else if ($reshook < 0) + $error ++; + + if ($error) { + $action = 'edit_extras'; setEventMessage($object->error,'errors'); } + } elseif ($action=='setref_supplier') { + $cancelbutton = GETPOST('cancel'); + + if (!$cancelbutton) { + + $result = $object->fetch($id); + if ($result < 0) { + setEventMessage($object->errors, 'errors'); + } + + $result = $object->setValueFrom('ref_supplier',GETPOST('ref_supplier','alpha')); + if ($result < 0) { + setEventMessage($object->errors, 'errors'); + $action = 'editref_supplier'; + } else { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + } + else { + header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id); + exit; + } + } elseif ($action=='setref') { + $cancelbutton = GETPOST('cancel'); + + if (!$cancelbutton) { + $result = $object->fetch($id); + if ($result < 0) { + setEventMessage($object->errors, 'errors'); + } + + $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));; + if ($result < 0) { + setEventMessage($object->errors, 'errors'); + $action = 'editref'; + } else { + header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id); + exit; + } + } + else { + header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id); + exit; + } + } + + // Generation doc (depuis lien ou depuis cartouche doc) + else if ($action == 'builddoc' && $user->rights->contrat->creer) { + if (GETPOST('model')) { + $object->setDocModel($user, GETPOST('model')); + } + + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) { + $outputlangs = new Translate("", $conf); + $newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret = $object->fetch($id); // Reload to get new records + $result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result <= 0) + { + setEventMessages($object->error, $object->errors, 'errors'); + $action=''; + } + } + + // Remove file in doc form + else if ($action == 'remove_file' && $user->rights->contrat->creer) { + if ($object->id > 0) { + require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; + + $langs->load("other"); + $upload_dir = $conf->contrat->dir_output; + $file = $upload_dir . '/' . GETPOST('file'); + $ret = dol_delete_file($file, 0, 0, 0, $object); + if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file'))); + else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors'); + } + } + + if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->contrat->creer) + { + if ($action == 'addcontact') + { + $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); + $result = $object->add_contact($contactid, GETPOST('type'), GETPOST('source')); + + if ($result >= 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else + { + if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') + { + $langs->load("errors"); + setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"),'errors'); + } + else + { + setEventMessage($object->error,'errors'); + } + } + } + + // bascule du statut d'un contact + else if ($action == 'swapstatut') + { + $result=$object->swapContactStatus(GETPOST('ligne')); + } + + // Efface un contact + else if ($action == 'deletecontact') + { + $result = $object->delete_contact(GETPOST('lineid')); + + if ($result >= 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else { + setEventMessage($object->error,'errors'); + } + } } } - /* * View */ diff --git a/htdocs/core/actions_builddoc.inc.php b/htdocs/core/actions_builddoc.inc.php new file mode 100644 index 00000000000..27e5d8f602b --- /dev/null +++ b/htdocs/core/actions_builddoc.inc.php @@ -0,0 +1,108 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/core/actions_builddoc.inc.php + * \brief Code for actions on building or deleting documents + */ + + +// $action must be defined +// $id must be defined +// $object must be defined and must have a method generateDocument. +// $permissioncreate must be defined +// $upload_dir must be defined (example $conf->projet->dir_output . "/";) +// $hidedetails, $hidedesc and $hideref may have been set or not. + + +// Build doc +if ($action == 'builddoc' && $permissioncreate) +{ + if (is_numeric(GETPOST('model'))) + { + $error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model")); + } + else + { + // Reload to get all modified line records and be ready for hooks + $ret = $object->fetch($id); + $ret = $object->fetch_thirdparty(); + /*if (empty($object->id) || ! $object->id > 0) + { + dol_print_error('Object must have been loaded by a fetch'); + exit; + }*/ + + // Save last template used to generate document + if (GETPOST('model')) $object->setDocModel($user, GETPOST('model','alpha')); + + // Special case for invoices + if (property_exists($object, 'fk_bank')) + { + if (GETPOST('fk_bank')) { // this field may come from an external module + $object->fk_bank = GETPOST('fk_bank'); + } else { + $object->fk_bank = $object->fk_account; + } + } + + $outputlangs = $langs; + $newlang=''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($object->client->default_lang)) $newlang=$object->client->default_lang; // for proposal, order, invoice, ... + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($object->default_lang)) $newlang=$object->default_lang; // for thirdparty + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + // To be sure vars is defined + if (empty($hidedetails)) $hidedetails=0; + if (empty($hidedesc)) $hidedesc=0; + if (empty($hideref)) $hideref=0; + + $result= $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result <= 0) + { + setEventMessages($object->error, $object->errors, 'errors'); + $action=''; + } + } +} + +// Delete file in doc form +if ($action == 'remove_file' && $permissioncreate) +{ + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + if (empty($object->id) || ! $object->id > 0) + { + // Reload to get all modified line records and be ready for hooks + $ret = $object->fetch($id); + $ret = $object->fetch_thirdparty(); + } + + $langs->load("other"); + $filetodelete=GETPOST('file','alpha'); + $file = $upload_dir . '/' . $filetodelete; + $ret=dol_delete_file($file,0,0,0,$object); + if ($ret) setEventMessage($langs->trans("FileWasRemoved", $filetodelete)); + else setEventMessage($langs->trans("ErrorFailToDeleteFile", $filetodelete), 'errors'); +} + diff --git a/htdocs/core/actions_dellink.inc.php b/htdocs/core/actions_dellink.inc.php index 1ba98a8435a..45fb8c5f9ec 100644 --- a/htdocs/core/actions_dellink.inc.php +++ b/htdocs/core/actions_dellink.inc.php @@ -25,6 +25,7 @@ // $action must be defined // $object must be defined // $permissiondellink must be defined +// $uploaddir (example $conf->projet->dir_output . "/";) $dellinkid = GETPOST('dellinkid','int'); @@ -34,3 +35,5 @@ if ($action == 'dellink' && ! empty($permissiondellink) && ! GETPOST('cancel') & $result=$object->deleteObjectLinked(0, '', 0, '', $dellinkid); if ($result < 0) setEventMessages($object->error,$object->errors,'errors'); } + + diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index d27e6e59fb4..67458fd401d 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -47,7 +47,7 @@ if (GETPOST('addfile')) /* * Remove file in email form */ -if (! empty($_POST['removedfile'])) +if (! empty($_POST['removedfile']) && empty($_POST['removAll'])) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -60,11 +60,41 @@ if (! empty($_POST['removedfile'])) $action='presend'; } +/* + * Remove all files in email form + */ + +if(! empty($_POST['removAll'])) +{ + $listofpaths=array(); + $listofnames=array(); + $listofmimes=array(); + if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]); + if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]); + if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]); + + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + + foreach($listofpaths as $key => $value) + { + $pathtodelete = $value; + $filetodelete = $listofnames[$key]; + $result = dol_delete_file($pathtodelete,1); // Delete uploded Files + + $langs->load("other"); + setEventMessage($langs->trans("FileWasRemoved",$filetodelete)); + + $formmail->remove_attached_files($key); // Update Session + } +} + /* * Send mail */ -if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel'] && !$_POST['modelselected']) +if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removAll'] && ! $_POST['removedfile'] && ! $_POST['cancel'] && !$_POST['modelselected']) { + if($conf->dolimail->enabled) $langs->load("dolimail@dolimail"); $langs->load('mails'); $subject='';$actionmsg='';$actionmsg2=''; @@ -81,7 +111,37 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO else if ($object->element == 'societe') { $thirdparty=$object; - $sendtosocid=$thirdparty->id; + if ($thirdparty->id > 0) $sendtosocid=$thirdparty->id; + elseif($conf->dolimail->enabled) + { + $dolimail = new Dolimail($db); + $possibleaccounts=$dolimail->get_societe_by_email($_POST['sendto'],"1"); + $possibleuser=$dolimail->get_from_user_by_mail($_POST['sendto'],"1"); // suche in llx_societe and socpeople + if (!$possibleaccounts && !$possibleuser) + { + setEventMessage($langs->trans('ErrorFailedToFindSocieteRecord',$_POST['sendto']),'errors'); + } + elseif (count($possibleaccounts)>1) + { + $sendtosocid=$possibleaccounts[1]['id']; + $result=$object->fetch($sendtosocid); + + setEventMessage($langs->trans('ErrorFoundMoreThanOneRecordWithEmail',$_POST['sendto'],$object->name)); + } + else + { + if($possibleaccounts){ + $sendtosocid=$possibleaccounts[1]['id']; + $result=$object->fetch($sendtosocid); + }elseif($possibleuser){ + $sendtosocid=$possibleuser[0]['id']; + + $result=$uobject->fetch($sendtosocid); + $object=$uobject; + } + + } + } } else dol_print_error('','Use actions_sendmails.in.php for a type that is not supported'); @@ -163,6 +223,46 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO $trackid = GETPOST('trackid','aZ'); + if($conf->dolimail->enabled) + { + $mailfromid = explode ("#", $_POST['frommail'],3); + if (count($mailfromid)==0) $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; + else + { + $mbid = $mailfromid[1]; + + /*IMAP Postbox*/ + $mailboxconfig = new IMAP($db); + $mailboxconfig->fetch($mbid); + if ($mailboxconfig->mailbox_imap_host) $ref=$mailboxconfig->get_ref(); + + $mailboxconfig->folder_id=$mailboxconfig->mailbox_imap_outbox; + $mailboxconfig->userfolder_fetch(); + + if ($mailboxconfig->mailbox_save_sent_mails == 1) + { + + $folder=str_replace($ref, '', $mailboxconfig->folder_cache_key); + if (!$folder) $folder = "Sent"; + + $mailboxconfig->mbox = imap_open($mailboxconfig->get_connector_url().$folder, $mailboxconfig->mailbox_imap_login, $mailboxconfig->mailbox_imap_password); + if (FALSE === $mailboxconfig->mbox) + { + $info = FALSE; + $err = $langs->trans('Error3_Imap_Connection_Error'); + setEventMessage($err,$mailboxconfig->element,'errors'); + } + else + { + $mailboxconfig->mailboxid=$_POST['frommail']; + $mailboxconfig->foldername=$folder; + $from = $mailfromid[0] . $mailfromid[2]; + $imap=1; + } + + } + } + } // Send mail require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1,'','',$trackid); @@ -176,7 +276,26 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO if ($result) { $error=0; - + if($conf->dolimail->enabled) + { + $mid = (GETPOST('mid','int') ? GETPOST('mid','int') : 0); + if ($mid) + { + // set imap flag answered if it is a answered mail + + $dolimail=new DoliMail($db); + $dolimail->id = $mid; + $res=$dolimail->set_prop($user, 'answered',1); + } + if ($imap==1) + { + // write mail to IMAP Server + $movemail = $mailboxconfig->putMail($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$folder,$deliveryreceipt,$mailfile); + if ($movemail) setEventMessage($langs->trans("MailMovedToImapFolder",$folder),'mesgs'); + else setEventMessage($langs->trans("MailMovedToImapFolder_Warning",$folder),'warnings'); + } + } + // Initialisation donnees $object->socid = $sendtosocid; // To link to a company $object->sendtoid = $sendtoid; // To link to a contact/address @@ -205,24 +324,27 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO // This avoid sending mail twice if going out and then back to page $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); setEventMessage($mesg); - header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id); + if($conf->dolimail->enabled) header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id.'&'.($paramname2?$paramname2:'mid').'='.$parm2val); + else header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id); exit; } } else { $langs->load("other"); + $mesg='
'; if ($mailfile->error) { - $mesg=''; $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto); $mesg.='
'.$mailfile->error; - setEventMessage($mesg,'errors'); } else { - setEventMessage('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', 'warnings'); + $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; } + $mesg.='
'; + + setEventMessage($mesg,'warnings'); $action = 'presend'; } } diff --git a/htdocs/core/ajax/box.php b/htdocs/core/ajax/box.php index 2d14a319a80..63f96a0c513 100644 --- a/htdocs/core/ajax/box.php +++ b/htdocs/core/ajax/box.php @@ -27,6 +27,7 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1'); require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php'; diff --git a/htdocs/core/ajax/security.php b/htdocs/core/ajax/security.php index 5bdd45c75d4..28a53a87679 100644 --- a/htdocs/core/ajax/security.php +++ b/htdocs/core/ajax/security.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2011-2015 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,8 @@ /** * \file htdocs/core/ajax/security.php - * \brief File for return security data + * \brief This ajax component is used to generated has keys for security purposes + * like key to use into URL to protect them. */ if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal @@ -26,6 +27,7 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1'); require '../../main.inc.php'; @@ -33,10 +35,6 @@ require '../../main.inc.php'; * View */ -// Ajout directives pour resoudre bug IE -//header('Cache-Control: Public, must-revalidate'); -//header('Pragma: public'); - //top_htmlhead("", "", 1); // Replaced with top_httphead. An ajax page does not need html header. top_httphead(); @@ -48,7 +46,7 @@ if (isset($_GET['action']) && ! empty($_GET['action'])) if ($_GET['action'] == 'getrandompassword' && $user->admin) { require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; - $generic = $_GET['generic']; + $generic = $_GET['generic'] ? true : false; echo getRandomPassword($generic); } } diff --git a/htdocs/core/ajax/selectsearchbox.php b/htdocs/core/ajax/selectsearchbox.php new file mode 100644 index 00000000000..c7a1c7f6d30 --- /dev/null +++ b/htdocs/core/ajax/selectsearchbox.php @@ -0,0 +1,48 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/core/ajax/selectsearchbox.php + * \ingroup core + * \brief This script returns content of possible search + */ + + +// This script is called with a POST method. +// Directory to scan (full path) is inside POST['dir']. + +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); // Disables token renewal +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); + +$res=@include '../../main.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; + + +$search_boxvalue=GETPOST('q'); + +$arrayresult=array('a'=>'aaaa', 'b'=>'bbbb'); + +if ($conf->projet->enabled) +{ + $arrayresult['searchintoproject']=$langs->trans("SearchIntoProject", $search_boxvalue); +} +print dol_json_encode($arrayresult); + +if (is_object($db)) $db->close(); diff --git a/htdocs/core/boxes/box_contacts.php b/htdocs/core/boxes/box_contacts.php index dde2a559cd3..18a09af6ace 100644 --- a/htdocs/core/boxes/box_contacts.php +++ b/htdocs/core/boxes/box_contacts.php @@ -82,7 +82,8 @@ class box_contacts extends ModeleBoxes $societestatic=new Societe($db); $line = 0; - while ($line < $num) { + while ($line < $num) + { $objp = $db->fetch_object($result); $datec=$db->jdate($objp->datec); $datem=$db->jdate($objp->tms); @@ -92,7 +93,6 @@ class box_contacts extends ModeleBoxes $contactstatic->firstname=$objp->firstname; $contactstatic->civility_id=$objp->civility_id; $contactstatic->statut=$objp->status; - $societestatic->id = $objp->fk_soc; $societestatic->code_client = $objp->code_client; $societestatic->name = $objp->socname; diff --git a/htdocs/core/boxes/box_factures.php b/htdocs/core/boxes/box_factures.php index d04c3e48a3b..f50bff34a86 100644 --- a/htdocs/core/boxes/box_factures.php +++ b/htdocs/core/boxes/box_factures.php @@ -108,12 +108,18 @@ class box_factures extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite); + $societestatic->id = $objp->socid; $societestatic->name = $objp->name; $societestatic->code_client = $objp->code_client; + $late = ''; - if ($objp->paye == 0 && ($objp->fk_statut != 2 && $objp->fk_statut != 3) && $datelimite < ($now - $conf->facture->client->warning_delay)) { $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));} + if ($facturestatic->hasDelay()) { + $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', diff --git a/htdocs/core/boxes/box_factures_fourn.php b/htdocs/core/boxes/box_factures_fourn.php index 2f31fa61f78..7c90bb69683 100644 --- a/htdocs/core/boxes/box_factures_fourn.php +++ b/htdocs/core/boxes/box_factures_fourn.php @@ -93,7 +93,6 @@ class box_factures_fourn extends ModeleBoxes if ($result) { $num = $db->num_rows($result); - $now=dol_now(); $line = 0; $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)'; @@ -108,6 +107,8 @@ class box_factures_fourn extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->date_echeance = $datelimite; + $facturestatic->statut = $objp->fk_statut; $thirdpartytmp->id = $objp->socid; $thirdpartytmp->name = $objp->name; $thirdpartytmp->fournisseur = 1; @@ -115,7 +116,10 @@ class box_factures_fourn extends ModeleBoxes $thirdpartytmp->logo = $objp->logo; $late = ''; - if ($objp->paye == 0 && $datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day'))); + + if ($facturestatic->hasDelay()) { + $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index ecea4a27fd1..9bf302b2e18 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -86,11 +86,12 @@ class box_factures_fourn_imp extends ModeleBoxes if ($result) { $num = $db->num_rows($result); - $now=dol_now(); $line = 0; $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)'; + $facturestatic = new FactureFournisseur($db); + while ($line < $num) { $objp = $db->fetch_object($result); @@ -99,9 +100,13 @@ class box_factures_fourn_imp extends ModeleBoxes $thirdpartytmp->name = $objp->name; $thirdpartytmp->code_client = $objp->code_client; $thirdpartytmp->logo = $objp->logo; + $facturestatic->date_echeance = $datelimite; + $facturestatic->statut = $objp->fk_statut; $late=''; - if ($datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + if ($facturestatic->hasDelay()) { + $late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $tooltip = $langs->trans('SupplierInvoice') . ': ' . ($objp->ref?$objp->ref:$objp->facid) . '
' . $langs->trans('RefSupplier') . ': ' . $objp->ref_supplier; $this->info_box_contents[$line][] = array( diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php index 42e889138cc..63ce986e181 100644 --- a/htdocs/core/boxes/box_factures_imp.php +++ b/htdocs/core/boxes/box_factures_imp.php @@ -108,6 +108,8 @@ class box_factures_imp extends ModeleBoxes $facturestatic->total_ht = $objp->total_ht; $facturestatic->total_tva = $objp->total_tva; $facturestatic->total_ttc = $objp->total_ttc; + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite); $societestatic->id = $objp->socid; $societestatic->name = $objp->name; $societestatic->client = 1; @@ -115,7 +117,9 @@ class box_factures_imp extends ModeleBoxes $societestatic->logo = $objp->logo; $late=''; - if ($datelimite < ($now - $conf->facture->client->warning_delay)) $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + if ($facturestatic->hasDelay()) { + $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day'))); + } $this->info_box_contents[$line][] = array( 'td' => 'align="left"', diff --git a/htdocs/core/boxes/box_prospect.php b/htdocs/core/boxes/box_prospect.php index b3f2144b28b..3895a27a9f1 100644 --- a/htdocs/core/boxes/box_prospect.php +++ b/htdocs/core/boxes/box_prospect.php @@ -155,7 +155,6 @@ class box_prospect extends ModeleBoxes ); } } else { - dol_syslog("box_prospect::loadBox not allowed de read this box content",LOG_ERR); $this->info_box_contents[0][0] = array( 'td' => 'align="left"', 'text' => $langs->trans("ReadPermissionNotAllowed"), diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php index 8ee42c44731..d6a65884ffb 100644 --- a/htdocs/core/boxes/box_task.php +++ b/htdocs/core/boxes/box_task.php @@ -82,7 +82,7 @@ class box_task extends ModeleBoxes $sql = "SELECT pt.fk_statut, count(pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot"; $sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_time as ptt"; - $sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = ".date("Y")." "; + $sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = '".date("Y")."' "; $sql.= " AND pt.rowid = ptt.fk_task"; $sql.= " GROUP BY pt.fk_statut "; $sql.= " ORDER BY pt.fk_statut DESC"; diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 58597862f8c..2a7834473dc 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -53,6 +53,11 @@ abstract class CommonObject */ public $error; + /** + * @var string[] Array of error strings + */ + public $errors=array(); + /** * @var string Key value used to track if data is coming from import wizard */ @@ -82,11 +87,6 @@ abstract class CommonObject // Following vars are used by some objects only. We keep this property here in CommonObject to be able to provide common method using them. - /** - * @var string[] Array of error strings - */ - public $errors=array(); - /** * @var string[] Can be used to pass information when only object is provided to method */ @@ -389,7 +389,7 @@ abstract class CommonObject * * @param Translate $langs Language object for translation of civility * @param int $option 0=No option, 1=Add civility - * @param int $nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname + * @param int $nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname * @param int $maxlen Maximum length * @return string String with full name */ @@ -452,13 +452,15 @@ abstract class CommonObject // Check parameters if ($fk_socpeople <= 0) { - $this->error=$langs->trans("ErrorWrongValueForParameter","1"); + $langs->load("errors"); + $this->error=$langs->trans("ErrorWrongValueForParameterX","1"); dol_syslog(get_class($this)."::add_contact ".$this->error,LOG_ERR); return -1; } if (! $type_contact) { - $this->error=$langs->trans("ErrorWrongValueForParameter","2"); + $langs->load("errors"); + $this->error=$langs->trans("ErrorWrongValueForParameterX","2"); dol_syslog(get_class($this)."::add_contact ".$this->error,LOG_ERR); return -2; } @@ -486,7 +488,7 @@ abstract class CommonObject } $datecreate = dol_now(); - + $this->db->begin(); // Insertion dans la base @@ -504,7 +506,11 @@ abstract class CommonObject if (! $notrigger) { $result=$this->call_trigger(strtoupper($this->element).'_ADD_CONTACT', $user); - if ($result < 0) { $this->db->rollback(); return -1; } + if ($result < 0) + { + $this->db->rollback(); + return -1; + } } $this->db->commit(); @@ -2159,11 +2165,11 @@ abstract class CommonObject $sourcetype = (! empty($sourcetype) ? $sourcetype : $this->element); $targettype = (! empty($targettype) ? $targettype : $this->element); - if (empty($sourceid) && empty($targetid)) + /*if (empty($sourceid) && empty($targetid)) { dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR); return -1; - } + }*/ // Links between objects are stored in table element_element $sql = 'SELECT rowid, fk_source, sourcetype, fk_target, targettype'; @@ -3432,7 +3438,6 @@ abstract class CommonObject require_once $file; $obj = new $classname($this->db); - //$obj->message = $message; // If generator is ODT, we must have srctemplatepath defined, if not we set it. if ($obj->type == 'odt' && empty($srctemplatepath)) @@ -3470,11 +3475,20 @@ abstract class CommonObject if (empty($srctemplatepath)) { - $this->error='ErrorGenerationAskedForOdtTemplateWithNoSrcFileFound'; + $this->error='ErrorGenerationAskedForOdtTemplateWithSrcFileNotDefined'; return -1; } } + if ($obj->type == 'odt' && ! empty($srctemplatepath)) + { + if (! dol_is_file($srctemplatepath)) + { + $this->error='ErrorGenerationAskedForOdtTemplateWithSrcFileNotFound'; + return -1; + } + } + // We save charset_output to restore it because write_file can change it if needed for // output format that does not support UTF8. $sav_charset_output=$outputlangs->charset_output; @@ -3535,7 +3549,47 @@ abstract class CommonObject /* Functions common to commonobject and commonobjectline */ + /* For default values */ + /** + * Return the default value to use for a field when showing the create form of object. + * Return values in this order: + * 1) If parameter is available into POST, we return it first. + * 2) If not but an alternate value was provided as parameter of function, we return it. + * 3) If not but a constant $conf->global->OBJECTELEMENT_FIELDNAME is set, we return it (It is better to use the dedicated table). + * 4) Return value found into database (TODO No yet implemented) + * + * @param string $fieldname Name of field + * @param string $alternatevalue Alternate value to use + * @return string Default value + **/ + function getDefaultCreateValueFor($fieldname, $alternatevalue=null) + { + global $conf, $_POST; + + // If param is has been posted with use this value first. + if (isset($_POST[$fieldname])) return GETPOST($fieldname, 2); + + if (isset($alternatevalue)) return $alternatevalue; + + $newelement=$this->element; + if ($newelement == 'facture') $newelement='invoice'; + if ($newelement == 'commande') $newelement='order'; + if (empty($newelement)) + { + dol_syslog("Ask a default value using common method getDefaultCreateValueForField on an object with no property ->element defined. Return empty string.", LOG_WARNING); + return ''; + } + + $keyforfieldname=strtoupper($newelement.'_DEFAULT_'.$fieldname); + //var_dump($keyforfieldname); + if (isset($conf->global->$keyforfieldname)) return $conf->global->$keyforfieldname; + + // TODO Ad here a scan into table llx_overwrite_default with a filter on $this->element and $fieldname + + } + + /* For triggers */ @@ -3588,6 +3642,11 @@ abstract class CommonObject { if (empty($rowid)) $rowid=$this->id; + //To avoid SQL errors. Probably not the better solution though + if (!$this->table_element) { + return 0; + } + if (! is_array($optionsArray)) { // optionsArray not already loaded, so we load it @@ -3794,7 +3853,7 @@ abstract class CommonObject */ function showOptionals($extrafields, $mode='view', $params=null, $keyprefix='') { - global $_POST, $conf; + global $_POST, $conf, $langs; $out = ''; @@ -3852,7 +3911,7 @@ abstract class CommonObject if($extrafields->attribute_required[$key]) $label = ''.$label.''; - $out .= '
'; + $out .= ''; $out .=''; switch($mode) { diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 13d2881563f..b3e5b843c28 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -110,6 +110,7 @@ class Conf $this->bank = new stdClass(); $this->notification = new stdClass(); $this->mailing = new stdClass(); + $this->expensereport = new stdClass(); } @@ -345,6 +346,9 @@ class Conf // Module contrat $this->contrat->dir_output=$rootfordata."/contracts"; $this->contrat->dir_temp =$rootfordata."/contracts/temp"; + // Module bank + $this->bank->dir_output=$rootfordata."/bank"; + $this->bank->dir_temp =$rootfordata."/bank/temp"; // Set some default values @@ -474,6 +478,7 @@ class Conf $this->adherent->cotisation = new stdClass(); $this->bank->rappro = new stdClass(); $this->bank->cheque = new stdClass(); + $this->expensereport->payment = new stdClass(); $this->actions->warning_delay=(isset($this->global->MAIN_DELAY_ACTIONS_TODO)?$this->global->MAIN_DELAY_ACTIONS_TODO:7)*24*60*60; $this->commande->client->warning_delay=(isset($this->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_ORDERS_TO_PROCESS:2)*24*60*60; $this->commande->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:7)*24*60*60; @@ -486,6 +491,7 @@ class Conf $this->adherent->cotisation->warning_delay=(isset($this->global->MAIN_DELAY_MEMBERS)?$this->global->MAIN_DELAY_MEMBERS:0)*24*60*60; $this->bank->rappro->warning_delay=(isset($this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)*24*60*60; $this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60; + $this->expensereport->payment->warning_delay=(isset($this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY)?$this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY:0)*24*60*60; // For modules that want to disable top or left menu if (! empty($this->global->MAIN_HIDE_TOP_MENU)) $this->dol_hide_topmenu=$this->global->MAIN_HIDE_TOP_MENU; diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index db303ee7d1b..60d24558d86 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -52,7 +52,7 @@ class DolEditor * @param string $content Content of WYSIWIG field * @param int $width Width in pixel of edit area (auto by default) * @param int $height Height in pixel of edit area (200px by default) - * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]', 'dolibarr_mailings[_encoded]', ') + * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', ') * @param string $toolbarlocation Where bar is stored : * 'In' each window has its own toolbar * 'Out:name' share toolbar into the div called 'name' @@ -168,8 +168,11 @@ class DolEditor { if (! defined('REQUIRE_CKEDITOR')) define('REQUIRE_CKEDITOR','1'); - //$skin='kama'; - $skin='moono'; // default with cdeditor 4 + if (! empty($conf->global->FCKEDITOR_SKIN)) { + $skin = $conf->global->FCKEDITOR_SKIN; + } else { + $skin = 'moono'; // default with ckeditor 4 : moono + } $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index ebac8ccd797..0807bbcec75 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -567,7 +567,7 @@ class ExtraFields /** * Load array this->attribute_xxx like attribute_label, attribute_type, ... * - * @param string $elementtype Type of element ('adherent', 'commande', thirdparty', 'facture', 'propal', 'product', ...) + * @param string $elementtype Type of element ('adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...) * @param boolean $forceload Force load of extra fields whatever is option MAIN_EXTRAFIELDS_DISABLED * @return array Array of attributes for all extra fields */ @@ -631,13 +631,15 @@ class ExtraFields /** * Return HTML string to put an input field into a page * - * @param string $key Key of attribute - * @param string $value Value to show (for date type it must be in timestamp format) - * @param string $moreparam To add more parametes on html input tag - * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) - * @return string + * @param string $key Key of attribute + * @param string $value Value to show (for date type it must be in timestamp format) + * @param string $moreparam To add more parametes on html input tag + * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) + * @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names) + * @param int $showsize Value for size attribute + * @return string */ - function showInputField($key,$value,$moreparam='',$keyprefix='') + function showInputField($key,$value,$moreparam='',$keyprefix='',$keysuffix='',$showsize=0) { global $conf,$langs; @@ -651,24 +653,27 @@ class ExtraFields $perms=$this->attribute_perms[$key]; $list=$this->attribute_list[$key]; - if ($type == 'date') + if (empty($showsize)) { - $showsize=10; + if ($type == 'date') + { + $showsize=10; + } + elseif ($type == 'datetime') + { + $showsize=19; + } + elseif (in_array($type,array('int','double'))) + { + $showsize=10; + } + else + { + $showsize=round($size); + if ($showsize > 48) $showsize=48; + } } - elseif ($type == 'datetime') - { - $showsize=19; - } - elseif (in_array($type,array('int','double'))) - { - $showsize=10; - } - else - { - $showsize=round($size); - if ($showsize > 48) $showsize=48; - } - + if (in_array($type,array('date','datetime'))) { $tmp=explode(',',$size); @@ -684,22 +689,22 @@ class ExtraFields if (! is_object($form)) $form=new Form($this->db); // TODO Must also support $moreparam - $out = $form->select_date($value, 'options_'.$key.$keyprefix, $showtime, $showtime, $required, '', 1, 1, 1, 0, 1); + $out = $form->select_date($value, $keysuffix.'options_'.$key.$keyprefix, $showtime, $showtime, $required, '', 1, 1, 1, 0, 1); } elseif (in_array($type,array('int'))) { $tmp=explode(',',$size); $newsize=$tmp[0]; - $out=''; + $out=''; } elseif ($type == 'varchar') { - $out=''; + $out=''; } elseif ($type == 'text') { require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('options_'.$key.$keyprefix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,5,100); + $doleditor=new DolEditor($keysuffix.'options_'.$key.$keyprefix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,5,100); $out=$doleditor->Create(1); } elseif ($type == 'boolean') @@ -710,26 +715,26 @@ class ExtraFields } else { $checked=' value="1" '; } - $out=''; + $out=''; } elseif ($type == 'mail') { - $out=''; + $out=''; } elseif ($type == 'phone') { - $out=''; + $out=''; } elseif ($type == 'price') { - $out=' '.$langs->getCurrencySymbol($conf->currency); + $out=' '.$langs->getCurrencySymbol($conf->currency); } elseif ($type == 'double') { if (!empty($value)) { $value=price($value); } - $out=' '; + $out=' '; } elseif ($type == 'select') { @@ -737,10 +742,10 @@ class ExtraFields if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT) && ! $forcecombo) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; - $out.= ajax_combobox('options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT); + $out.= ajax_combobox($keysuffix.'options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT); } - $out.=''; $out.=''; foreach ($param['options'] as $key=>$val ) { @@ -758,10 +763,10 @@ class ExtraFields if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && ! $forcecombo) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; - $out.= ajax_combobox('options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT); + $out.= ajax_combobox($keysuffix.'options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT); } - $out.=''; if (is_array($param['options'])) { $param_list=array_keys($param['options']); @@ -907,7 +912,7 @@ class ExtraFields foreach ($param['options'] as $keyopt=>$val ) { - $out.='$val ) { - $out.=''; @@ -1018,7 +1023,7 @@ class ExtraFields $labeltoshow = dol_trunc($obj->$field_toshow, 18) . ' '; } } - $out .= 'rowid . '"'; $out .= 'checked'; @@ -1037,7 +1042,7 @@ class ExtraFields $labeltoshow = '(not defined)'; if (is_array($value_arr) && in_array($obj->rowid, $value_arr)) { - $out .= 'rowid . '"'; $out .= 'checked'; @@ -1050,7 +1055,7 @@ class ExtraFields $parent = $parentName . ':' . $obj->{$parentField}; } - $out .= 'rowid . '"'; $out .= ((is_array($value_arr) && in_array($obj->rowid, $value_arr)) ? ' checked ' : ''); @@ -1080,7 +1085,7 @@ class ExtraFields dol_include_once($InfoFieldList[1]); $object = new $InfoFieldList[0]($this->db); $object->fetch($value); - $out=''; + $out=''; } /* Add comments @@ -1417,14 +1422,16 @@ class ExtraFields return 0; } } + /** * return array_options array for object by extrafields value (using for data send by forms) * - * @param array $extralabels $array of extrafields - * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) - * @return int 1 if array_options set / 0 if no value + * @param array $extralabels $array of extrafields + * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) + * @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names) + * @return int 1 if array_options set / 0 if no value */ - function getOptionalsFromPost($extralabels,$keyprefix='') + function getOptionalsFromPost($extralabels,$keyprefix='',$keysuffix='') { global $_POST; @@ -1439,24 +1446,24 @@ class ExtraFields if (in_array($key_type,array('date','datetime'))) { // Clean parameters - $value_key=dol_mktime($_POST["options_".$key.$keyprefix."hour"], $_POST["options_".$key.$keyprefix."min"], 0, $_POST["options_".$key.$keyprefix."month"], $_POST["options_".$key.$keyprefix."day"], $_POST["options_".$key.$keyprefix."year"]); + $value_key=dol_mktime($_POST[$keysuffix."options_".$key.$keyprefix."hour"], $_POST[$keysuffix."options_".$key.$keyprefix."min"], 0, $_POST[$keysuffix."options_".$key.$keyprefix."month"], $_POST[$keysuffix."options_".$key.$keyprefix."day"], $_POST[$keysuffix."options_".$key.$keyprefix."year"]); } else if (in_array($key_type,array('checkbox'))) { - $value_arr=GETPOST("options_".$key.$keyprefix); + $value_arr=GETPOST($keysuffix."options_".$key.$keyprefix); $value_key=implode($value_arr,','); } else if (in_array($key_type,array('price','double'))) { - $value_arr=GETPOST("options_".$key.$keyprefix); + $value_arr=GETPOST($keysuffix."options_".$key.$keyprefix); $value_key=price2num($value_arr); } else { - $value_key=GETPOST("options_".$key.$keyprefix); + $value_key=GETPOST($keysuffix."options_".$key.$keyprefix); } - $array_options["options_".$key]=$value_key; // No keyprefix here. keyprefix is used only for read. + $array_options[$keysuffix."options_".$key]=$value_key; // No keyprefix here. keyprefix is used only for read. } return $array_options; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 7efae8effc3..3851a67f0cb 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -364,7 +364,8 @@ class Form } /** - * Show a text and picto with tooltip on text or picto + * Show a text and picto with tooltip on text or picto. + * Can be called by an instancied $form->textwithtooltip or by a static call Form::textwithtooltip * * @param string $text Text to show * @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded. @@ -3015,6 +3016,8 @@ class Form global $langs; $langs->load("categories"); + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $cat = new Categorie($this->db); $cate_arbo = $cat->get_full_arbo($type,$excludeafterid); @@ -4406,7 +4409,7 @@ class Form * @param string $htmlname Name of html select area. Must start with "multi" if this is a multiselect * @param array $array Array with key+value * @param string|string[] $id Preselected key or preselected keys for multiselect - * @param int $show_empty 0 no empty value allowed, 1 to add an empty value into list (value is '' or ' '). + * @param int $show_empty 0 no empty value allowed, 1 to add an empty value into list (value is '' or ' '), <0 to add an empty value with key that is this value. * @param int $key_in_label 1 pour afficher la key dans la valeur "[key] value" * @param int $value_as_key 1 to use value as key * @param string $moreparam Add more parameters onto the select tag @@ -4455,7 +4458,7 @@ class Form { $textforempty=' '; if (! empty($conf->use_javascript_ajax)) $textforempty=' '; // If we use ajaxcombo, we need   here to avoid to have an empty element that is too small. - $out.=''."\n"; + $out.=''."\n"; // id is -2 because -1 is already "do not contact" } if (is_array($array)) @@ -4499,70 +4502,71 @@ class Form * Return a HTML select string, built from an array of key+value but content returned into select come from an Ajax call of an URL. * Note: Do not apply langs->trans function on returned content, content may be entity encoded twice. * - * @param string $htmlname Name of html select area - * @param string $url Url - * @param string $id Preselected key - * @param int $show_empty 0 no empty value allowed, 1 to add an empty value into list (value is '' or ' '). - * @param int $key_in_label 1 pour afficher la key dans la valeur "[key] value" - * @param int $value_as_key 1 to use value as key - * @param string $moreparam Add more parameters onto the select tag - * @param int $translate Translate and encode value - * @param int $maxlen Length maximum for labels - * @param int $disabled Html select box is disabled - * @param int $sort 'ASC' or 'DESC' = Sort on label, '' or 'NONE' = Do not sort - * @param string $morecss Add more class to css styles - * @param int $addjscombo Add js combo - * @return string HTML select string. + * @param string $htmlname Name of html select area + * @param string $url Url + * @param string $id Preselected key + * @param string $moreparam Add more parameters onto the select tag + * @param string $moreparamtourl Add more parameters onto the Ajax called URL + * @param int $disabled Html select box is disabled + * @param int $minimumInputLength Minimum Input Length + * @param string $morecss Add more class to css styles + * @return string HTML select string. */ - static function selectArrayAjax($htmlname, $url, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='', $addjscombo=0) + static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='') { $out = ''; - // Add code for jquery to use select2 - if ($addjscombo && empty($conf->dol_use_jmobile)) - { - $tmpplugin='select2'; - $out.=' - '; - } - else - { - // TODO get all values from $url into $array + $tmpplugin='select2'; + $out.=' + '; - $out.=self::selectarray('.'.$htmlname, $array, $id, $show_empty, $key_in_label, $value_as_key, '', $translate, $maxlen, $disabled, $sort, '', 0); + $out.=''; + return $out; } @@ -4666,13 +4670,15 @@ class Form * * @param int $id Id of object * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact'). Old mode (0, 1, 2, ...) is deprecated. - * @param int $rendermode 0=Default, use multiselect. 1=Emulate multiselect + * @param int $rendermode 0=Default, use multiselect. 1=Emulate multiselect (recommended) * @return mixed Array of category objects or < 0 if KO */ function showCategories($id, $type, $rendermode=0) { global $db; + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $cat = new Categorie($db); $categories = $cat->containing($id, $type); @@ -4681,10 +4687,10 @@ class Form $toprint = array(); foreach($categories as $c) { - $ways = $c->print_all_ways(); + $ways = $c->print_all_ways(); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text foreach($ways as $way) { - $toprint[] = '
  • '.img_object('','category').' '.$way.'
  • '; + $toprint[] = '
  • color?' style="background: #'.$c->color.'"':'').'>'.img_object('','category').' '.$way.'
  • '; } } return '
      '.implode(' ', $toprint).'
    '; @@ -5057,10 +5063,7 @@ class Form $next_ref = $object->ref_next?''.(empty($conf->dol_use_jmobile)?'>':' ').'':''; //print "xx".$previous_ref."x".$next_ref; - //if ($previous_ref || $next_ref || $morehtml) { - //$ret.='
    '.$langs->trans("Label").'trans("VATPayment")).'">
    '.$langs->trans("Label").'
    '.$langs->trans("Amount").'
    : '; if ($object->birthday_alert) { - print ''.$label.''.$langs->trans($label).'
    "; print ''; + // Categories + if (! empty($conf->categorie->enabled)) + { + print ''; + print '"; + } + // Other attributes $parameters=array('socid'=>$object->id, 'colspan' => ' colspan="3"', 'colspanvalue' => '3'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 9bd341e357c..233c0510b3a 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -72,7 +72,11 @@ class CommandeFournisseur extends CommonOrder var $date_approve; var $date_approve2; // Used when SUPPLIER_ORDER_DOUBLE_APPROVAL is set var $date_commande; - var $date_livraison; // Date livraison souhaitee + + /** + * Delivery date + */ + var $date_livraison; var $total_ht; var $total_tva; var $total_localtax1; // Total Local tax 1 @@ -998,7 +1002,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ") "; $sql.= " VALUES ("; $sql.= "''"; - $sql.= ", '".$this->ref_supplier."'"; + $sql.= ", '".$this->db->escape($this->ref_supplier)."'"; $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", ".$conf->entity; @@ -1007,7 +1011,7 @@ class CommandeFournisseur extends CommonOrder $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".$user->id; $sql.= ", 0"; - $sql.= ", " . $this->source; + $sql.= ", ".$this->db->escape($this->source); $sql.= ", '".$conf->global->COMMANDE_SUPPLIER_ADDON_PDF."'"; $sql.= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'null'); $sql.= ", ".($this->cond_reglement_id > 0 ? $this->cond_reglement_id : 'null'); @@ -2292,7 +2296,7 @@ class CommandeFournisseur extends CommonOrder $resql=$this->db->query($sql); if ($resql) { - $now=dol_now(); + $commandestatic = new CommandeFournisseur($this->db); $response = new WorkboardResponse(); $response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24; @@ -2304,8 +2308,11 @@ class CommandeFournisseur extends CommonOrder { $response->nbtodo++; - $date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date; - if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->fournisseur->warning_delay)) { + $commandestatic->date_livraison = $this->db->jdate($obj->delivery_date); + $commandestatic->date_commande = $this->db->jdate($obj->datec); + $commandestatic->statut = $obj->fk_statut; + + if ($commandestatic->hasDelay()) { $response->nbtodolate++; } } @@ -2447,6 +2454,21 @@ class CommandeFournisseur extends CommonOrder return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the supplier order delayed? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + $date_to_test = empty($this->date_livraison) ? $this->date_commande : $this->date_livraison; + + return ($this->statut != 3) && $date_to_test < ($now - $conf->commande->fournisseur->warning_delay); + } } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 5e24417f618..32d8dbf5a05 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -63,7 +63,12 @@ class FactureFournisseur extends CommonInvoice * @see FactureFournisseur::STATUS_DRAFT, FactureFournisseur::STATUS_VALIDATED, FactureFournisseur::STATUS_PAID, FactureFournisseur::STATUS_ABANDONED */ var $statut; - //! 1 si facture payee COMPLETEMENT, 0 sinon (ce champ ne devrait plus servir car insuffisant) + + /** + * Set to 1 if the invoice is completely paid, otherwise is 0 + * @var int + * @deprecated Use statuses stored in self::statut + */ var $paye; var $author; @@ -266,7 +271,7 @@ class FactureFournisseur extends CommonInvoice { if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { - $result=$this->insertExtraFields(); + $result=$this->insertExtraFields(); // This also set $this->error or $this->errors if errors are found if ($result < 0) { $error++; @@ -274,11 +279,15 @@ class FactureFournisseur extends CommonInvoice } } else if ($reshook < 0) $error++; - // Call trigger - $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); - if ($result < 0) $error++; - // End call triggers - + + if (! $error) + { + // Call trigger + $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); + if ($result < 0) $error++; + // End call triggers + } + if (! $error) { $this->db->commit(); @@ -307,7 +316,7 @@ class FactureFournisseur extends CommonInvoice } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); $this->db->rollback(); return -2; } @@ -1409,7 +1418,7 @@ class FactureFournisseur extends CommonInvoice { global $conf, $user, $langs; - $sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin'; + $sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin, ff.fk_statut'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as ff'; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ' WHERE ff.paye=0'; @@ -1427,13 +1436,19 @@ class FactureFournisseur extends CommonInvoice $response = new WorkboardResponse(); $response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24; $response->label=$langs->trans("SupplierBillsToPay"); - $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=paye:0'; + $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0'; $response->img=img_object($langs->trans("Bills"),"bill"); + $facturestatic = new FactureFournisseur($this->db); + while ($obj=$this->db->fetch_object($resql)) { $response->nbtodo++; - if (! empty($obj->datefin) && $this->db->jdate($obj->datefin) < ($now - $conf->facture->fournisseur->warning_delay)) { + + $facturestatic->date_echeance = $this->db->jdate($obj->datefin); + $facturestatic->statut = $obj->fk_statut; + + if ($facturestatic->hasDelay()) { $response->nbtodolate++; } } @@ -1822,6 +1837,24 @@ class FactureFournisseur extends CommonInvoice return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Is the payment of the supplier invoice having a delay? + * + * @return bool + */ + public function hasDelay() + { + global $conf; + + $now = dol_now(); + + if (!$this->date_echeance) { + return false; + } + + return ($this->statut == self::STATUS_VALIDATED) && ($this->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)); + } } diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 9b0001e79d6..bb01b5b8f6a 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1460,8 +1460,8 @@ if ($action=='create') $datedelivery = (! empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : ''); - $note_private = (! empty($objectsrc->note_private) ? $objectsrc->note_private : (! empty($objectsrc->note_private) ? $objectsrc->note_private : '')); - $note_public = (! empty($objectsrc->note_public) ? $objectsrc->note_public : ''); + $note_private = $object->getDefaultCreateValueFor('note_private', (! empty($objectsrc->note_private) ? $objectsrc->note_private : null)); + $note_public = $object->getDefaultCreateValueFor('note_public', (! empty($objectsrc->note_public) ? $objectsrc->note_public : null)); // Object source contacts list $srccontactslist = $objectsrc->liste_contact(- 1, 'external', 1); @@ -1471,6 +1471,9 @@ if ($action=='create') { $cond_reglement_id = $societe->cond_reglement_supplier_id; $mode_reglement_id = $societe->mode_reglement_supplier_id; + + $note_private = $object->getDefaultCreateValueFor('note_private'); + $note_public = $object->getDefaultCreateValueFor('note_public'); } print ''; diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 27ddcf9cdb1..fd992dbeeb1 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -366,9 +366,17 @@ if ($id > 0 || ! empty($ref)) $resql = $db->query($sql); if ($resql) { - while ($row = $db->fetch_row($resql)) + $num = $db->num_rows($resql); + $i = 0; + + if ($num) { - $products_dispatched[$row[0]] = $row[2]; + while ($i < $num) + { + $objd = $db->fetch_object($resql); + $products_dispatched[$objd->rowid] = price2num($objd->qty, 5); + $i++; + } } $db->free($resql); } @@ -429,7 +437,7 @@ if ($id > 0 || ! empty($ref)) } else { - $remaintodispatch=($objp->qty - ((int) $products_dispatched[$objp->rowid])); // Calculation of dispatched + $remaintodispatch=price2num($objp->qty - ((float) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched if ($remaintodispatch < 0) $remaintodispatch=0; if ($remaintodispatch || empty($conf->global->SUPPLIER_ORDER_DISABLE_STOCK_DISPATCH_WHEN_TOTAL_REACHED)) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 38d11843714..332c9b01621 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -364,7 +364,7 @@ if (empty($reshook)) if(empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement(); // If creation from another object of another module - if ($_POST['origin'] && $_POST['originid']) + if (! $error && $_POST['origin'] && $_POST['originid']) { // Parse element/subelement (ex: project_task) $element = $subelement = $_POST['origin']; @@ -468,17 +468,17 @@ if (empty($reshook)) $error++; } } - // If some invoice's lines already known - else + else if (! $error) { $id = $object->create($user); if ($id < 0) { $error++; } - + if (! $error) { + // If some invoice's lines already known for ($i = 1 ; $i < 9 ; $i++) { $label = $_POST['label'.$i]; @@ -513,7 +513,8 @@ if (empty($reshook)) { $langs->load("errors"); $db->rollback(); - setEventMessage($langs->trans($object->error), 'errors'); + + setEventMessages($object->error, $object->errors, 'errors'); $action='create'; $_GET['socid']=$_POST['socid']; } @@ -526,7 +527,7 @@ if (empty($reshook)) $result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); if ($result <= 0) { - dol_print_error($db,$result); + dol_print_error($db,$object->error,$object->errors); exit; } } @@ -1476,7 +1477,8 @@ if ($action == 'create') // Public note print ''; print ''; // print ''; @@ -1485,7 +1487,8 @@ if ($action == 'create') // Private note print ''; print ''; // print ''; @@ -1905,7 +1908,9 @@ else // Due date print ''; // Conditions de reglement par defaut @@ -2296,7 +2301,7 @@ else $result = $object->generateDocument(GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); if ($result <= 0) { - dol_print_error($db,$result); + dol_print_error($db,$object->error,$object->errors); exit; } $fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2,0,0,$object,'invoice_supplier').$ref, preg_quote($ref,'/').'([^\-])+'); diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php index 83d4b830c5f..dbe235cdebc 100644 --- a/htdocs/fourn/facture/impayees.php +++ b/htdocs/fourn/facture/impayees.php @@ -230,6 +230,9 @@ if ($user->rights->fournisseur->facture->lire) { $objp = $db->fetch_object($resql); + $facturestatic->statut = $objp->fk_statut; + $facturestatic->date_echeance = $db->jdate($objp->datelimite); + $var=!$var; print ""; @@ -245,7 +248,9 @@ if ($user->rights->fournisseur->facture->lire) print '\n"; print '\n"; print '"; @@ -342,7 +346,9 @@ if ($resql) print ''; print ''; print ''; print ''; } else diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php index 3333ffefba2..d05359945d1 100644 --- a/htdocs/fourn/list.php +++ b/htdocs/fourn/list.php @@ -5,6 +5,7 @@ * Copyright (C) 2011 Philippe Grand * Copyright (C) 2013 Cédric Salvador * Copyright (C) 2015 Raphaël Doursenaud + * Copyright (C) 2015 Florian Henry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,6 +30,8 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; $langs->load("suppliers"); $langs->load("orders"); @@ -44,6 +47,8 @@ $search_datec = GETPOST("search_datec"); $search_categ = GETPOST('search_categ','int'); $search_status = GETPOST("search_status",'int'); $catid = GETPOST("catid",'int'); +$search_country = GETPOST("search_country",'int'); +$search_type_thirdparty = GETPOST("search_type_thirdparty",'int'); // Security check $socid = GETPOST('socid','int'); @@ -76,6 +81,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both $search_categ=""; $search_status=''; $catid=""; + $search_country=""; + $search_type_thirdparty=""; } if ($search_status=='') $search_status=1; // always display activ customer first @@ -99,12 +106,15 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e $form=new Form($db); $htmlother=new FormOther($db); $thirdpartystatic=new Societe($db); +$formcompany=new FormCompany($db); $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias, s.zip, s.town, s.datec, st.libelle as stcomm, s.prefix_comm, s.status as status, "; $sql.= "code_fournisseur, code_compta_fournisseur"; +$sql.= ",s.fk_pays"; +$sql.= ",typent.code as typent_code"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; // Add fields for extrafields foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key; @@ -114,6 +124,8 @@ $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // N $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef ON ef.fk_object = s.rowid"; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) "; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) "; if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cf ON s.rowid = cf.fk_soc"; // We need this table joined to the select in order to filter by categ $sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -137,6 +149,8 @@ if ($catid > 0) $sql.= " AND cf.fk_categorie = ".$catid; if ($catid == -2) $sql.= " AND cf.fk_categorie IS NULL"; if ($search_categ > 0) $sql.= " AND cf.fk_categorie = ".$search_categ; if ($search_categ == -2) $sql.= " AND cf.fk_categorie IS NULL"; +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook @@ -160,9 +174,14 @@ if ($resql) $num = $db->num_rows($resql); $i = 0; - $param = "&search_name=".$search_name."&search_supplier_code=".$search_supplier_code."&search_zipcode=".$search_zipcode."&search_town=".$search_town; - if ($search_categ != '') $param.='&search_categ='.$search_categ; - if ($search_status != '') $param.='&search_status='.$search_status; + $param = "&search_name=".htmlspecialchars($search_name); + $param.="&search_supplier_code=".htmlspecialchars($search_supplier_code); + $param.="&search_zipcode=".htmlspecialchars($search_zipcode); + $param.="&search_town=".htmlspecialchars($search_town); + if ($search_categ != '') $param.='&search_categ='.htmlspecialchars($search_categ); + if ($search_status != '') $param.='&search_status='.htmlspecialchars($search_status); + if ($search_country != '') $param.='&search_country='.htmlspecialchars($search_country); + if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.htmlspecialchars($search_type_thirdparty); print_barre_liste($langs->trans("ListOfSuppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies'); @@ -193,6 +212,8 @@ if ($resql) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,'valign="middle"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,'valign="middle"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("SupplierCode"),$_SERVER["PHP_SELF"],"s.code_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="right"',$sortfield,$sortorder); @@ -213,6 +234,14 @@ if ($resql) print ''; + print ''; + + print ''; + print ''; @@ -257,6 +286,16 @@ if ($resql) print "\n"; print ''."\n"; print ''."\n"; + //Country + print ''; + //Type ent + print ''; print ''; print ''; print ''; diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php index 4da37cde779..afcb32811a9 100644 --- a/htdocs/ftp/index.php +++ b/htdocs/ftp/index.php @@ -38,12 +38,13 @@ if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'ftp',''); // Get parameters -$action = isset($_GET["action"])?$_GET["action"]:$_POST['action']; -$section=isset($_GET["section"])?$_GET["section"]:$_POST['section']; +$action=GETPOST('action'); +$section=GETPOST('section'); if (! $section) $section='/'; $numero_ftp = GETPOST("numero_ftp"); -if (! $numero_ftp) $numero_ftp=1; -$file=isset($_GET["file"])?$_GET["file"]:$_POST['file']; +/* if (! $numero_ftp) $numero_ftp=1; */ +$file=GETPOST("file"); +$confirm=GETPOST('confirm'); $upload_dir = $conf->ftp->dir_temp; $download_dir = $conf->ftp->dir_temp; @@ -71,18 +72,19 @@ $ftp_user=$conf->global->$s_ftp_user; $ftp_password=$conf->global->$s_ftp_password; $ftp_passive=$conf->global->$s_ftp_passive; +// For result on connection +$ok=0; $conn_id=null; // FTP connection ID +$mesg=''; -/******************************************************************* +/* * ACTIONS - * - * Put here all code to do according to value of "action" parameter - ********************************************************************/ + */ -// Envoie fichier -if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) +// Submit file +if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -127,7 +129,7 @@ if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) } // Action ajout d'un rep -if ($_POST["action"] == 'add' && $user->rights->ftp->setup) +if ($action == 'add' && $user->rights->ftp->setup) { $ecmdir->ref = $_POST["ref"]; $ecmdir->label = $_POST["label"]; @@ -143,12 +145,12 @@ if ($_POST["action"] == 'add' && $user->rights->ftp->setup) { //TODO: Translate setEventMessage('Error '.$langs->trans($ecmdir->error)); - $_GET["action"] = "create"; + $action = "create"; } } // Remove file -if ($_REQUEST['action'] == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes') +if ($action == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes') { // set up a connection or die if (! $conn_id) @@ -246,7 +248,7 @@ if ($_POST["const"] && $_POST["delete"] && $_POST["delete"] == $langs->trans("De } // Remove directory -if ($_REQUEST['action'] == 'confirm_deletesection' && $_REQUEST['confirm'] == 'yes') +if ($action == 'confirm_deletesection' && $confirm == 'yes') { // set up a connection or die if (! $conn_id) @@ -286,7 +288,7 @@ if ($_REQUEST['action'] == 'confirm_deletesection' && $_REQUEST['confirm'] == 'y } // Download directory -if ($_REQUEST['action'] == 'download') +if ($action == 'download') { // set up a connection or die if (! $conn_id) @@ -339,8 +341,7 @@ if ($_REQUEST['action'] == 'download') } else { - //TODO: Translate - setEventMessage('Failed to get file '.$remotefile, 'errors'); + setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile',$remotefile), null, 'errors'); } } @@ -355,11 +356,9 @@ if ($_REQUEST['action'] == 'download') -/******************************************************************* - * PAGE - * - * Put here all code to do according to value of "action" parameter - ********************************************************************/ +/* + * View + */ llxHeader(); @@ -370,11 +369,24 @@ if ($conf->use_javascript_ajax) + trans("FTPArea")); print $langs->trans("FTPAreaDesc")."
    "; @@ -397,18 +406,17 @@ if (! function_exists('ftp_connect')) } else { - if (! empty($ftp_server)) + if (! empty($ftp_server)) { - // Confirm remove file - if ($_GET['action'] == 'delete') + if ($action == 'delete') { print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1); } // Confirmation de la suppression d'une ligne categorie - if ($_GET['action'] == 'delete_section') + if ($action == 'delete_section') { print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection','','',1); @@ -417,8 +425,9 @@ else print $langs->trans("Server").': '.$ftp_server.'
    '; print $langs->trans("Port").': '.$ftp_port.' '.($ftp_passive?"(Passive)":"(Active)").'
    '; print $langs->trans("User").': '.$ftp_user.'
    '; - - print $langs->trans("Directory").': '; + print $langs->trans("FTPs (FTP over SSH)").': '.yn($conf->global->FTP_CONNECT_WITH_SSL).'
    '; + print $langs->trans("SFTP (FTP as a subsytem of SSH)").': '.yn($conf->global->FTP_CONNECT_WITH_SFTP).'
    '; + print $langs->trans("Directory").': '; $sectionarray=preg_split('|[\/]|',$section); // For / $newsection='/'; @@ -459,30 +468,50 @@ else print ''."\n"; print ''."\n"; print ''."\n"; - print ''."\n"; print ''."\n"; // set up a connection or die - if (! $conn_id) + if (empty($conn_id)) { $resultarray=dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive); + $conn_id=$resultarray['conn_id']; $ok=$resultarray['ok']; $mesg=$resultarray['mesg']; - } if ($ok) { //$type = ftp_systype($conn_id); - $newsectioniso=utf8_decode($section); - $buff = ftp_rawlist($conn_id, $newsectioniso); - $contents = ftp_nlist($conn_id, $newsectioniso); // Sometimes rawlist fails but never nlist - //var_dump($contents); - //var_dump($buff); + $newsection=$section; + $newsectioniso=utf8_decode($section); + //$newsection='/home'; + + // List content of directory ($newsection = '/', '/home', ...) + if (! empty($conf->global->FTP_CONNECT_WITH_SFTP)) + { + if ($newsection == '/') $newsection='/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169 + //$dirHandle = opendir("ssh2.sftp://$conn_id".$newsection); + //var_dump($dirHandle); + $contents = scandir('ssh2.sftp://' . $conn_id . $newsection); + $buff=array(); + foreach($contents as $i => $key) + { + $buff[$i]="---------- - root root 1234 Aug 01 2000 ".$key; + } + } + else + { + $buff = ftp_rawlist($conn_id, $newsectioniso); + $contents = ftp_nlist($conn_id, $newsectioniso); // Sometimes rawlist fails but never nlist + //var_dump($contents); + //var_dump($buff); + } $nboflines=count($contents); $var=true; @@ -590,9 +619,16 @@ else } - print "
    '; - $ret.='
    '; - //} + $ret.='
    '; $ret.=dol_htmlentities($object->$fieldref); if ($morehtmlref) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 47723a05cbc..59a418d73a2 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -75,6 +75,7 @@ class FormFile global $conf,$langs, $hookmanager; $hookmanager->initHooks(array('formfile')); + if (! empty($conf->browser->layout) && $conf->browser->layout != 'classic') $useajax=0; if ((! empty($conf->global->MAIN_USE_JQUERY_FILEUPLOAD) && $useajax) || ($useajax==2)) @@ -86,13 +87,13 @@ class FormFile return $this->_formAjaxFileUpload($object); } else - { + { $maxlength=$size; $out = "\n\n\n"; if (empty($title)) $title=$langs->trans("AttachANewFile"); - if ($title != 'none') print_titre($title); + if ($title != 'none') $out.=load_fiche_titre($title, null, null); $out .= ''; $out .= ''; @@ -178,7 +179,7 @@ class FormFile $out .= ''; $out .= ''; $out .= ''; - print ''; + print ''; if (! $variantexxx) print ''; - print ''; + print ''; if (! $variante) print ''; - print ''; + print ''; print ''; print ''; diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 78f8309a05b..0e7f74b32f7 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -90,7 +90,7 @@ function dol_hash($chain,$type=0) else if (! empty($conf->global->MAIN_SECURITY_HASH_ALGO) && $conf->global->MAIN_SECURITY_HASH_ALGO == 'sha1') return sha1($chain); else if (! empty($conf->global->MAIN_SECURITY_HASH_ALGO) && $conf->global->MAIN_SECURITY_HASH_ALGO == 'sha1md5') return sha1(md5($chain)); - // No enconding defined + // No particular enconding defined, use default return md5($chain); } diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php index 04e0fb133f6..3297047bef5 100644 --- a/htdocs/core/lib/security2.lib.php +++ b/htdocs/core/lib/security2.lib.php @@ -439,7 +439,7 @@ function encodedecode_dbpassconf($level=0) /** * Return a generated password using default module * - * @param boolean $generic true=Create generic password (use default crypt function), false=Use the configured password generation module + * @param boolean $generic true=Create generic password (use md5, sha1 depending on setup), false=Use the configured password generation module * @return string New value for password */ function getRandomPassword($generic=false) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 5dc17962e14..f5f8df18ba1 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -277,6 +277,10 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) if (empty($foruserprofile)) $selected_theme=$conf->global->MAIN_THEME; else $selected_theme=((is_object($fuser) && ! empty($fuser->conf->MAIN_THEME))?$fuser->conf->MAIN_THEME:''); + $hoverdisabled=''; + if (empty($foruserprofile)) $hoverdisabled=(isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0'); + else $hoverdisabled=(is_object($fuser)?(empty($fuser->conf->THEME_ELDY_USE_HOVER) || $fuser->conf->THEME_ELDY_USE_HOVER == '0'):''); + $colspan=2; if ($foruserprofile) $colspan=4; @@ -295,7 +299,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; } @@ -359,11 +363,11 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print '
    '; if ($subdir == $selected_theme) { - print ''.$subdir.''; + print ''.$subdir.''; } else { - print ' '.$subdir; + print ' '.$subdir; } print ''; @@ -378,57 +382,101 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) print ''; - if (! $foruserprofile) + // Use Hover + $var=!$var; + if ($foruserprofile) + { + /* Must first change option to choose color of highlight insteado of yes or no. + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + */ + } + else + { + print ''; + print ''; + print ''; + print ''; + } + + // TopMenuBackgroundColor + if ($foruserprofile) + { + /*$var=!$var; + print ''; + print ''; + print ''; + print ''; + print '';*/ + } + else { $var=!$var; print ''; - print ''; - $hoverdisabled=(isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0'); - print ''; + print ''; + } + + // BackgroundTableTitleColor + if ($foruserprofile) + { + + + } + else + { + $var=!$var; + print ''; + print ''; + print ''; - print ''; - - //if ($conf->theme == 'eldy') - //{ - // TopMenuBackgroundColor - $var=!$var; - print ''; - print ''; - print ''; - - // BackgroundTableTitleColor - $var=!$var; - print ''; - print ''; - print ''; - //} print ''; } - + print '
    '; - $out .= $langs->trans("Link") . ': '; + $out .= $langs->trans("URLToLink") . ': '; $out .= ''; $out .= '   ' . $langs->trans("Label") . ': '; $out .= ''; @@ -200,7 +201,9 @@ class FormFile if (empty($res)) { + print '
    '; print $out; + print '
    '; } print $hookmanager->resPrint; diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index d51516359ad..25d65cc591a 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -423,7 +423,7 @@ class FormProjets * @param string $morecss More CSS * @return int|string The HTML select list of element or '' if nothing or -1 if KO */ - function select_element($table_element,$socid=0,$morecss='') + function select_element($table_element, $socid=0, $morecss='') { global $conf, $langs; @@ -515,13 +515,14 @@ class FormProjets /** * Build a HTML select list of element of same thirdparty to suggest to link them to project * - * @param string $htmlname HTML name - * @param int $preselected Preselected - * @param int $showempty Add an empty line - * @param int $useshortlabel Use short label - * @return int|string The HTML select list of element or '' if nothing or -1 if KO + * @param string $htmlname HTML name + * @param int $preselected Preselected + * @param int $showempty Add an empty line + * @param int $useshortlabel Use short label + * @param int $showallnone Add choice "All" and "None" + * @return int|string The HTML select list of element or '' if nothing or -1 if KO */ - function selectOpportunityStatus($htmlname,$preselected=0,$showempty=1,$useshortlabel=0) + function selectOpportunityStatus($htmlname, $preselected=0, $showempty=1, $useshortlabel=0, $showallnone=0) { global $conf, $langs; @@ -530,8 +531,6 @@ class FormProjets $sql.= " WHERE active = 1"; $sql.= " ORDER BY position"; - dol_syslog(get_class($this).'::selectOpportunityStatus', LOG_DEBUG); - $resql=$this->db->query($sql); if ($resql) { @@ -541,6 +540,8 @@ class FormProjets { $sellist = ''; + + $var=false; + + // Title + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + + //$var=!$var; + print ''; + + print '
    '.$langs->trans("DefaultSkin").''; + $url='http://ckeditor.com/addons/skins/all'; + /*print ''; + print $langs->trans('DownloadMoreSkins'); + print '';*/ + print '
    '.$langs->trans("ThemeDir").''; + foreach($dirskins as $dirskin) + { + echo '"'.$dirskin.'" '; + } + print '
    '; + + print '
    '; + + $i=0; + foreach($dirskins as $dir) + { + //print $dirroot.$dir;exit; + $dirskin=dol_buildpath($dir,0); // This include loop on $conf->file->dol_document_root + $urltheme=dol_buildpath($dir,1); + + if (is_dir($dirskin)) + { + $handle=opendir($dirskin); + if (is_resource($handle)) + { + while (($subdir = readdir($handle))!==false) + { + if (is_dir($dirskin."/".$subdir) && substr($subdir, 0, 1) <> '.' + && substr($subdir, 0, 3) <> 'CVS' && ! preg_match('/common|phones/i',$subdir)) + { + // Disable not stable themes (dir ends with _exp or _dev) + if ($conf->global->MAIN_FEATURES_LEVEL < 2 && preg_match('/_dev$/i',$subdir)) continue; + if ($conf->global->MAIN_FEATURES_LEVEL < 1 && preg_match('/_exp$/i',$subdir)) continue; + + print '
    '; + if ($subdir == $selected_theme) + { + print ' '.$subdir.''; + } + else + { + print ' '.$subdir; + } + print '
    '; + + $i++; + } + } + } + } + } + + print '
    '; + + print '
    '; +} + diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 2f197d8b645..c1b68d0f1b7 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -202,6 +202,329 @@ function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefil } } +/** + * Scan a directory and return a array of files/directories from a selection. + * Content for string is UTF8 and dir separator is "/". + * + * @param int $fk_soc select socid - for your selection in array + * @param string $module_get Starting path from which to search + * @param string $sortorder SORT_ASC or SORT_DESC + * @param array $excludefiles Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.')) + * @return array Array of array( filefolder=> array( filelabel=> array( file=> array('name'=>'xxx','date'=>'yyy','size'=>99,'type'=>'dir|file')))) + */ +function get_soc_file_array($fk_soc, $module_get = false, $sortorder = false, $excludefiles = false) +{ + global $user, $conf, $db; + + $sortfield = "date"; + + if(!$sortorder){ + $sorting = SORT_DESC; + }else{ + $sorting = $sortorder; + } + + $ar_modules_get = array(); + if (is_array($module_get)) $ar_modules_get = $module_get; + elseif (strlen($module_get) > 0) $ar_modules_get[$module_get] = $module_get; + else + { + $ar_modules_get['company'] = 'company'; + $ar_modules_get['dolimail'] = 'dolimail'; + $ar_modules_get['actions'] = 'actions'; + $ar_modules_get['invoice'] = 'invoice'; + $ar_modules_get['order'] = 'order'; + $ar_modules_get['propal'] = 'propal'; + $ar_modules_get['contract'] = 'contract'; + $ar_modules_get['project'] = 'project'; + $ar_modules_get['invoice_supplier'] = 'invoice_supplier'; + $ar_modules_get['order_supplier'] = 'order_supplier'; + } + + + // rights + if (count($ar_modules_get) > 0) + foreach($ar_modules_get as $curmodule) + { + switch($curmodule) + { + case 'company': + if (! empty($conf->societe->enabled)) // Recht Alle oder nur die Vertriebspartneradressen + $ar_modules_secure['company']['outputdir'] = $conf->societe->dir_output; + break; + case 'dolimail': + if (! empty($conf->dolimail->enabled) && ($user->rights->dolimail->read || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->dolimail->dir_output.'/attachments'; + break; + case 'actions': + if (! empty($conf->agenda->enabled) || ($user->rights->agenda->allactions->read || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->agenda->dir_output; + break; + case 'invoice': + if (! empty($conf->facture->enabled) && ($user->rights->facture->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->facture->dir_output; + break; + case 'order': + if (!empty($conf->commande->enabled) && ($user->rights->commande->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->commande->dir_output; + break; + case 'propal': + if (!empty($conf->propal->enabled) && ($user->rights->propale->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->propal->dir_output; + break; + case 'project': + if (! empty($conf->projet->enabled) && ($user->rights->projet->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->projet->dir_output; + break; + case 'invoice_supplier': + if (! empty($conf->fournisseur->enabled) && ($user->rights->fournisseur->facture->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->fournisseur->dir_output.'/facture'; + break; + case 'order_supplier': + if (! empty($conf->fournisseur->enabled) && ($user->rights->fournisseur->commande->lire || $user->admin)) + $ar_modules_secure[$curmodule]['outputdir']=$conf->fournisseur->dir_output.'/commande'; + break; + } + } + /* TODO make a outputdir*/ + //unset($ar_modules_secure['dolimail']); + unset($ar_modules_secure['project']); // project (list with project) is "ref" + unset($ar_modules_secure['actions']); + unset($ar_modules_secure['contract']); + /* TODO make a outputdir*/ + unset($curmodule); + + if($fk_soc > 0) + $ar_modules_get = $ar_modules_secure; + + $xy=0; + if (count($ar_modules_get)>0) + foreach($ar_modules_get as $curmodule => $myarray) + { + if($fk_soc > 0 && $curmodule != "company") + { + + // SQL to find documents (ref number) + + if($curmodule == "invoice") $sql = "SELECT facnumber as refstr FROM ".MAIN_DB_PREFIX."facture"; + elseif($curmodule == "order") $sql = "SELECT ref as refstr FROM ".MAIN_DB_PREFIX."commande"; + elseif($curmodule == "invoice_supplier") $sql = "SELECT rowid as refstr FROM ".MAIN_DB_PREFIX."facture_fourn"; + elseif($curmodule == "order_supplier") $sql = "SELECT ref as refstr FROM ".MAIN_DB_PREFIX."commande_fournisseur"; + elseif($curmodule == "propal") $sql = "SELECT ref as refstr FROM ".MAIN_DB_PREFIX."propal"; + elseif($curmodule == "contract") $sql = "SELECT ref as refstr FROM ".MAIN_DB_PREFIX."contrat"; + elseif($curmodule == "dolimail") $sql = "SELECT uid as refstr, subject FROM ".MAIN_DB_PREFIX."mails"; + + $sql.= ' WHERE entity IN ('.getEntity('societe', 1).')'; + $sql.= " AND fk_soc = '".$fk_soc."'"; + + + $res = $db->query($sql); + if ($res && $db->num_rows($res) > 0) + { + while($obj = $db->fetch_object($res)) + { + $ar_modules_secure[$curmodule]['socref'][] = $obj->refstr; + if($curmodule == "dolimail") $ar_modules_secure['dolimail']['subject'][$obj->refstr] = $obj->subject; + } + } + else + { + unset($ar_modules_secure[$curmodule]); + continue; + $errors[]="SQL Error: ".$sql; + $error++; + } + + + }else{ + if($curmodule == "dolimail") $sql = "SELECT uid as refstr, subject FROM ".MAIN_DB_PREFIX."mails"; + + $res = $db->query($sql); + if ($res && $db->num_rows($res) > 0) + { + while($obj = $db->fetch_object($res)) + { + if($curmodule == "dolimail") $ar_modules_secure['dolimail']['subject'][$obj->refstr] = $obj->subject; + } + } + } + + // Data in Array + // Get Array from ar_module + + $output[$curmodule]=dol_dir_list($myarray['outputdir'],"files",1,'', $excludefiles, $sortfield, $sorting,1); + if($fk_soc > 0) + { + if($curmodule == "company") + { + foreach($output["company"] as $label => $filedata) + { + if($filedata['level1name'] != $fk_soc) + { + unset($output['company'][$label]); + } + } + } + + elseif($curmodule == "invoice") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // wenn no file exsit + foreach($output["invoice"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) + { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($fac_supp_N_arr) array + } + + } + } + elseif($curmodule == "invoice_supplier") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["invoice_supplier"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($fac_supp_N_arr) array + } + } + } + elseif($curmodule == "order") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["order"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($ref_order_arr) array + } + } + } + elseif($curmodule == "order_supplier") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["order_supplier"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($ref_order_supp_arr) array + } + } + } + elseif($curmodule == "propal") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["propal"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($ref_propal_arr) array + } + } + } + elseif($curmodule == "contract") + { + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["contract"] as $label => $filedata) + { + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($ref_contract_arr) array + } + } + } + elseif($curmodule == "dolimail") + { + + if (! is_array($ar_modules_secure[$curmodule]['socref'])) { unset($output[$curmodule]); continue; } // throw all ref number who are not in ($fac_invoice_arr) array + foreach($output["dolimail"] as $label => $filedata) + { + if($filedata['name'] == "winmail.dat" || $filedata['name'] == "smime.p7s") unset($output[$curmodule][$label]); + else + if (! in_array($filedata['level1name'], $ar_modules_secure[$curmodule]['socref'])) { + unset($output[$curmodule][$label]); // throw all ref number who are not in ($ref_propal_arr) array + } + } + } + // Error if ther isn't any File + if(count($output[$curmodule]) == 0) + { + $error++; + $errors[]="Error [404]: No File found for User: ".$fk_soc." in module: ".$curmodule; + unset($output[$curmodule]); + } + } + + // Extra for Mail attachments + if($curmodule == "dolimail" && count($output["dolimail"])>0) + { + foreach($output["dolimail"] as $label => $filedata) + { + $output[$curmodule][$label]['subject'] = $ar_modules_secure['dolimail']['subject'][$filedata['level1name']]; + } + } + + // Extra for Mail attachments + if($curmodule == "invoice" && count($output["invoice"])>0) + { + foreach($output["invoice"] as $label => $filedata) + { + $output[$curmodule][$label]['subject'] = $filedata['level1name']; + } + } + + // Extra for Mail attachments + if($curmodule == "invoice_supplier" && count($output["invoice_supplier"])>0) + { + foreach($output["invoice_supplier"] as $label => $filedata) + { + $output[$curmodule][$label]['subject'] = $filedata['level1name']; + } + } + + // Extra for Mail attachments + if($curmodule == "contract" && count($output["contract"])>0) + { + foreach($output["contract"] as $label => $filedata) + { + $output[$curmodule][$label]['subject'] = $filedata['level1name']; + } + } + + $xy++; + } + + if(count($output) > 0) + { + return $output; + } + else + { + return -1; + } +} + +/** + * Calculate Bytes to kb, mb and translate it to current language + * + * @param int $byt Bytes + * @return string calculated string + */ +function calculate_byte($byt) +{ + global $langs; + + if ($byt < 1024) { + $unit = ' '.$langs->trans("b"); + $mailsize=$byt; + } else if ($byt / 1024 > 1024) { + $mailsize = $byt / 1024 / 1024; + $unit = ' '.$langs->trans("Mb"); + } else { + $mailsize = $byt / 1024; + $unit = ' '.$langs->trans("Kb"); + } + + $val = number_format($mailsize, 2).$unit; + + return $val; +} + /** * Fast compare of 2 files identified by their properties ->name, ->date and ->size * @@ -627,7 +950,7 @@ function dol_move($srcfile, $destfile, $newmask=0, $overwriteifexists=1) else dol_syslog("files.lib.php::dol_move failed", LOG_WARNING); } if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; - @chmod($newpathofsrcfile, octdec($newmask)); + @chmod($newpathofdestfile, octdec($newmask)); } return $result; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index cc718334f13..0ae89d01274 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -142,14 +142,14 @@ function getEntity($element=false, $shared=0) */ function getBrowserInfo($user_agent) { - include_once DOL_DOCUMENT_ROOT.'/includes/mobiledetect/mobiledetect.class.php'; + include_once DOL_DOCUMENT_ROOT.'/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php'; $name='unknown'; $version=''; $os='unknown'; $phone = ''; - $detectmobile = new MobileDetect(null, $user_agent); + $detectmobile = new Mobile_Detect(null, $user_agent); $tablet = $detectmobile->isTablet(); if ($detectmobile->isMobile()) { @@ -302,7 +302,7 @@ function dol_getprefix() * * @param string $relpath Relative path to file (Ie: mydir/myfile, ../myfile, ...) * @param string $classname Class name - * @return bool + * @return bool True if load is a success, False if it fails */ function dol_include_once($relpath, $classname='') { @@ -693,17 +693,17 @@ function dol_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto * Show tab header of a card * * @param array $links Array of tabs - * @param int $active Active tab name + * @param string $active Active tab name * @param string $title Title * @param int $notab 0=Add tab header, 1=no tab header. If you set this to 1, using dol_fiche_end() to close tab is not required. * @param string $picto Add a picto on tab title * @param int $pictoisfullpath If 1, image path is a full path. If you set this to 1, you can use url returned by dol_buildpath('/mymodyle/img/myimg.png',1) for $picto. * @return string */ -function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto='', $pictoisfullpath=0) +function dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0) { - global $conf,$langs; - + global $conf,$langs, $hookmanager; + $out="\n".'
    '."\n"; // Show title @@ -731,6 +731,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p // if =0 we don't use the feature $limittoshow=(empty($conf->global->MAIN_MAXTABS_IN_CARD)?99:$conf->global->MAIN_MAXTABS_IN_CARD); $displaytab=0; + $nbintab=0; for ($i = 0 ; $i <= $maxkey ; $i++) { @@ -767,7 +768,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p } else { - $out.=''.$links[$i][1].''."\n"; + $out.=''.$links[$i][1].''."\n"; } } $out.='
    '; @@ -787,6 +788,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p $outmore.=''.$links[$i][1].''."\n"; $outmore.=''; + $nbintab++; } $displaytab=$i; } @@ -795,20 +797,23 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p { $tabsname=str_replace("@", "", $picto); $out.='
    '; - $out.=''.$langs->trans("More").'...'; + $out.=''.$langs->trans("More").' '.$nbintab.''; $out.='
    '.$outmore.'
    '; $out.="
    \n"; $out.=""; } $out.="\n"; - + if (! $notab) $out.="\n".'
    '."\n"; + $parameters=array('tabname' => $active); + $reshook=$hookmanager->executeHooks('printTabsHead',$parameters); // Note that $action and $object may have been modified by some hooks + return $out; } @@ -2766,7 +2771,7 @@ function print_fiche_titre($title, $mesg='', $picto='title_generic.png', $pictoi * @param int $id To force an id on html objects * @return string */ -function load_fiche_titre($titre, $mesg='', $picto='title.png', $pictoisfullpath=0, $id=0) +function load_fiche_titre($titre, $mesg='', $picto='title_generic.png', $pictoisfullpath=0, $id=0) { global $conf; @@ -2847,7 +2852,7 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so { if ($totalnboflines) // If we know total nb of lines { - $maxnbofpage=(empty($conf->dol_optimize_smallscreen)?10:3); // nb before and after selected page + $maxnbofpage=(empty($conf->dol_optimize_smallscreen) ? 6 : 3); // nb before and after selected page + ... + first or last $nbpages=ceil($totalnboflines/$conf->liste_limit); $cpt=($page-$maxnbofpage); @@ -2856,8 +2861,10 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so if ($cpt>=1) { $pagelist.= 'dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'':'data-role="button" ').'href="'.$file.'?page=0'.$options.'&sortfield='.$sortfield.'&sortorder='.$sortorder.'">1'; - if ($cpt >= 2) $pagelist.='
  • ...
  • '; + if ($cpt > 2) $pagelist.='dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'class="inactive"':'data-role="button"').'>...'; + else if ($cpt == 2) $pagelist.='dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'':'data-role="button" ').'href="'.$file.'?page=1'.$options.'&sortfield='.$sortfield.'&sortorder='.$sortorder.'">2'; } + do { if ($cpt==$page) @@ -2871,9 +2878,11 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so $cpt++; } while ($cpt < $nbpages && $cpt<=$page+$maxnbofpage); + if ($cpt<$nbpages) { - if ($cpt<$nbpages-1) $pagelist.= 'dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'class="inactive"':'data-role="button"').'>...'; + if ($cpt<$nbpages-2) $pagelist.= 'dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'class="inactive"':'data-role="button"').'>...'; + else if ($cpt == $nbpages-2) $pagelist.= 'dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'':'data-role="button" ').'href="'.$file.'?page='.($nbpages-2).$options.'&sortfield='.$sortfield.'&sortorder='.$sortorder.'">'.($nbpages - 1).''; $pagelist.= 'dol_use_jmobile)?' class="pagination"':'').'>dol_use_jmobile)?'':'data-role="button" ').'href="'.$file.'?page='.($nbpages-1).$options.'&sortfield='.$sortfield.'&sortorder='.$sortorder.'">'.$nbpages.''; } } @@ -4291,12 +4300,16 @@ function dolGetFirstLastname($firstname,$lastname,$nameorder=-1) $ret=''; // If order not defined, we use the setup if ($nameorder < 0) $nameorder=(empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)); - if ($nameorder) + if ($nameorder && ((string) $nameorder != '2')) { - $ret.=$firstname; + $ret.=$firstname; if ($firstname && $lastname) $ret.=' '; $ret.=$lastname; } + else if ($nameorder == 2) + { + $ret.=$firstname; + } else { $ret.=$lastname; @@ -4385,15 +4398,17 @@ function dol_htmloutput_events() /** * Get formated messages to output (Used to show messages on html output). + * This include also the translation of the message key. * - * @param string $mesgstring Message string - * @param array $mesgarray Messages array + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys * @param string $style Style of message output ('ok' or 'error') * @param int $keepembedded Set to 1 in error message must be kept embedded into its html place (this disable jnotify) * @return string Return html output * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function get_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { @@ -4478,14 +4493,15 @@ function get_htmloutput_errors($mesgstring='', $mesgarray='', $keepembedded=0) /** * Print formated messages to output (Used to show messages on html output). * - * @param string $mesgstring Message - * @param array $mesgarray Messages array - * @param string $style Which style to use ('ok', 'warning', 'error') - * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) + * @param string $mesgstring Message string or message key + * @param string[] $mesgarray Array of message strings or message keys + * @param string $style Which style to use ('ok', 'warning', 'error') + * @param int $keepembedded Set to 1 if message must be kept embedded into its html place (this disable jnotify) * @return void * * @see dol_print_error * @see dol_htmloutput_errors + * @see setEventMessages */ function dol_htmloutput_mesg($mesgstring='',$mesgarray='', $style='ok', $keepembedded=0) { @@ -4885,7 +4901,7 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode= */ function printCommonFooter($zone='private') { - global $conf; + global $conf, $hookmanager; global $micro_start_time; if ($zone == 'private') print "\n".''."\n"; @@ -4963,6 +4979,8 @@ function printCommonFooter($zone='private') print "End of log output -->\n"; } + $parameters=array(); + $reshook=$hookmanager->executeHooks('printCommonFooter',$parameters); // Note that $action and $object may have been modified by some hooks } /** diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 9c77729ac5a..651e4ea54ac 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1,9 +1,10 @@ - * Copyright (C) 2008-2012 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand (Resultic) +/* Copyright (C) 2008-2011 Laurent Destailleur + * Copyright (C) 2008-2012 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2014 Marcos García * Copyright (C) 2015 Ferran Marcet + * Copyright (C) 2015 Raphaël Doursenaud * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -104,7 +105,9 @@ function dolGetModulesDirs($subdir='') foreach ($conf->file->dol_document_root as $type => $dirroot) { // Default core/modules dir - $modulesdir[$dirroot . '/core/modules'.$subdir.'/'] = $dirroot . '/core/modules'.$subdir.'/'; + if ($type === 'main') { + $modulesdir[$dirroot . '/core/modules' . $subdir . '/'] = $dirroot . '/core/modules' . $subdir . '/'; + } // Scan dir from external modules $handle=@opendir($dirroot); diff --git a/htdocs/core/lib/geturl.lib.php b/htdocs/core/lib/geturl.lib.php index af0c6b91da0..682ddb1b1d1 100644 --- a/htdocs/core/lib/geturl.lib.php +++ b/htdocs/core/lib/geturl.lib.php @@ -24,12 +24,12 @@ /** * Function get content from an URL (use proxy if proxy defined) * - * @param string $url URL to call. - * @param string $postorget 'POST', 'GET', 'HEAD' - * @param string $param Parameters of URL (x=value1&y=value2) - * @param string $followlocation 1=Follow location, 0=Do not follow - * @param array $addheaders Array of string to add into header. Example: array('Accept: application/xrds+xml', ....) - * @return array Returns an associative array containing the response from the server array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...) + * @param string $url URL to call. + * @param string $postorget 'POST', 'GET', 'HEAD', 'PUT', 'PUTALREADYFORMATED', 'DELETE' + * @param string $param Parameters of URL (x=value1&y=value2) or may be a formated content with PUTALREADYFORMATED + * @param string $followlocation 1=Follow location, 0=Do not follow + * @param array $addheaders Array of string to add into header. Example: ('Accept: application/xrds+xml', ....) + * @return array Returns an associative array containing the response from the server array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...) */ function getURLContent($url,$postorget='GET',$param='',$followlocation=1,$addheaders=array()) { @@ -74,7 +74,18 @@ function getURLContent($url,$postorget='GET',$param='',$followlocation=1,$addhea else if ($postorget == 'PUT') { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // HTTP request is 'PUT' - curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // Setting param x=a&y=z as PUT fields + if (! is_array($param)) parse_str($param, $array_param); + else + { + dol_syslog("parameter param must be a string", LOG_WARNING); + $array_param=$param; + } + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array_param)); // Setting param x=a&y=z as PUT fields + } + else if ($postorget == 'PUTALREADYFORMATED') + { + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // HTTP request is 'PUT' + curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // param = content of post, like a xml string } else if ($postorget == 'HEAD') { diff --git a/htdocs/core/lib/memory.lib.php b/htdocs/core/lib/memory.lib.php index b68016c3a46..69c127f915c 100644 --- a/htdocs/core/lib/memory.lib.php +++ b/htdocs/core/lib/memory.lib.php @@ -47,14 +47,19 @@ function dol_setcache($memoryid,$data) // Using a memcached server if (! empty($conf->memcached->enabled) && class_exists('Memcached')) { - $memoryid=session_name().'_'.$memoryid; - $m=new Memcached(); - $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); - $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); - //$m->setOption(Memcached::OPT_COMPRESSION, false); - //print "Add memoryid=".$memoryid; - $m->add($memoryid,$data); // This fails if key already exists - $rescode=$m->getResultCode(); + global $dolmemcache; + if (empty($dolmemcache) || ! is_object($dolmemcache)) + { + $dolmemcache=new Memcached(); + $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); + $result=$dolmemcache->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); + if (! $result) return -1; + } + + $memoryid=session_name().'_'.$memoryid; + //$dolmemcache->setOption(Memcached::OPT_COMPRESSION, false); + $dolmemcache->add($memoryid,$data); // This fails if key already exists + $rescode=$dolmemcache->getResultCode(); if ($rescode == 0) { return count($data); @@ -66,12 +71,18 @@ function dol_setcache($memoryid,$data) } else if (! empty($conf->memcached->enabled) && class_exists('Memcache')) { - $memoryid=session_name().'_'.$memoryid; - $m=new Memcache(); - $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); - $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); - //$m->setOption(Memcached::OPT_COMPRESSION, false); - $result=$m->add($memoryid,$data); // This fails if key already exists + global $dolmemcache; + if (empty($dolmemcache) || ! is_object($dolmemcache)) + { + $dolmemcache=new Memcache(); + $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); + $result=$dolmemcache->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); + if (! $result) return -1; + } + + $memoryid=session_name().'_'.$memoryid; + //$dolmemcache->setOption(Memcached::OPT_COMPRESSION, false); + $result=$dolmemcache->add($memoryid,$data); // This fails if key already exists if ($result) { return count($data); @@ -103,10 +114,16 @@ function dol_getcache($memoryid) // Using a memcached server if (! empty($conf->memcached->enabled) && class_exists('Memcached')) { + global $m; + if (empty($m) || ! is_object($m)) + { + $m=new Memcached(); + $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); + $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); + if (! $result) return -1; + } + $memoryid=session_name().'_'.$memoryid; - $m=new Memcached(); - $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); - $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); //$m->setOption(Memcached::OPT_COMPRESSION, false); //print "Get memoryid=".$memoryid; $data=$m->get($memoryid); @@ -124,10 +141,16 @@ function dol_getcache($memoryid) } else if (! empty($conf->memcached->enabled) && class_exists('Memcache')) { - $memoryid=session_name().'_'.$memoryid; - $m=new Memcache(); - $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); - $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); + global $m; + if (empty($m) || ! is_object($m)) + { + $m=new Memcache(); + $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); + $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); + if (! $result) return -1; + } + + $memoryid=session_name().'_'.$memoryid; //$m->setOption(Memcached::OPT_COMPRESSION, false); $data=$m->get($memoryid); //print "memoryid=".$memoryid." - rescode=".$rescode." - data=".count($data)."\n
    "; diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 8ed3c312e50..0ab44fb927b 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -290,6 +290,55 @@ function pdf_getHeightForLogo($logo, $url = false) return $height; } +/** + * Function to try to calculate height of a HTML Content + * + * @param TCPDF $pdf PDF initialized object + * @param string $htmlcontent HTML Contect + * @see getStringHeight + */ +function pdfGetHeightForHtmlContent(&$pdf, $htmlcontent) +{ + // store current object + $pdf->startTransaction(); + // store starting values + $start_y = $pdf->GetY(); + var_dump($start_y); + $start_page = $pdf->getPage(); + // call your printing functions with your parameters + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + $pdf->writeHTMLCell(0, 0, 0, $start_y, $htmlcontent, 0, 1, false, true, 'J',true); + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // get the new Y + $end_y = $pdf->GetY(); + $end_page = $pdf->getPage(); + // calculate height + $height = 0; + if ($end_page == $start_page) { + $height = $end_y - $start_y; + } + else + { + for ($page=$start_page; $page <= $end_page; ++$page) { + $this->setPage($page); + if ($page == $start_page) { + // first page + $height = $this->h - $start_y - $this->bMargin; + } elseif ($page == $end_page) { + // last page + $height = $end_y - $this->tMargin; + } else { + $height = $this->h - $this->tMargin - $this->bMargin; + } + } + } + // restore previous object + $pdf = $pdf->rollbackTransaction(); + + return $height; +} + + /** * Returns the name of the thirdparty * @@ -676,7 +725,8 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default if ($account->getCountryCode() == 'IN') $ibankey="IFSC"; if (! empty($account->iban)) { - $ibanDisplay_temp = $outputlangs->convToOutputCharset($account->iban); + //Remove whitespaces to ensure we are dealing with the format we expect + $ibanDisplay_temp = str_replace(' ', '', $outputlangs->convToOutputCharset($account->iban)); $ibanDisplay = ""; for($i = 0; $i < dol_strlen($ibanDisplay_temp); $i++) @@ -744,7 +794,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass // First line of company infos $line1=""; $line2=""; $line3=""; $line4=""; - if ($showdetails && 1) + if ($showdetails) { // Company name if ($fromcompany->name) @@ -788,7 +838,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass $line2.=($line2?" - ":"").$fromcompany->email; } } - if (($showdetails && 2) || ($fromcompany->country_code == 'DE')) + if ($showdetails || ($fromcompany->country_code == 'DE')) { // Managers if ($fromcompany->managers) @@ -853,11 +903,20 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass $freetextheight=0; if ($line) // Free text { - $width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text. - if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) { - $width=200; $align='C'; + //$line="eee
    \nfdsfsdf
    \nghfghg
    "; + if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) // by default + { + $width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text. + if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) { + $width=200; $align='C'; + } + $freetextheight=$pdf->getStringHeight($width,$line); + } + else + { + $freetextheight=pdfGetHeightForHtmlContent($pdf,dol_htmlentitiesbr($line, 1, 'UTF-8', 0)); // New method (works for HTML content) + //print '
    '.$freetextheight;exit; } - $freetextheight=$pdf->getStringHeight($width,$line); } $marginwithfooter=$marge_basse + $freetextheight + (! empty($line1)?3:0) + (! empty($line2)?3:0) + (! empty($line3)?3:0) + (! empty($line4)?3:0); @@ -866,7 +925,14 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass if ($line) // Free text { $pdf->SetXY($dims['lm'],-$posy); - $pdf->MultiCell(0, 3, $line, 0, $align, 0); + if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) // by default + { + $pdf->MultiCell(0, 3, $line, 0, $align, 0); + } + else + { + $pdf->writeHTMLCell($pdf->page_largeur - $pdf->margin_left - $pdf->margin_right, $freetextheight, $dims['lm'], $dims['hk']-$marginwithfooter, dol_htmlentitiesbr($line, 1, 'UTF-8', 0)); + } $posy-=$freetextheight; } @@ -1707,7 +1773,7 @@ function pdf_getLinkedObjects($object,$outputlangs) foreach($objects as $elementobject) { $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder"); - $linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($elementobject->ref) . ($elementobject->ref_client ? ' ('.$objects[$i]->ref_client.')' : ''); + $linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($elementobject->ref) . ($elementobject->ref_client ? ' ('.$elementobject->ref_client.')' : ''); $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate"); $linkedobjects[$objecttype]['date_value'] = dol_print_date($elementobject->date,'day','',$outputlangs); } diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php index 79ab5fe0ead..8946449d5ac 100644 --- a/htdocs/core/lib/report.lib.php +++ b/htdocs/core/lib/report.lib.php @@ -61,7 +61,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat // Ligne de titre print '
    '.$langs->trans("ReportName").''.$langs->trans("ReportName").''; else print ''; print $nom; @@ -73,7 +73,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat if ($calcmode) { print '
    '.$langs->trans("CalculationMode").''.$langs->trans("CalculationMode").''; else print ''; print $calcmode; @@ -94,7 +94,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat // Ligne de description print '
    '.$langs->trans("ReportDescription").''.$langs->trans("ReportDescription").''.$description.'
    '.$langs->trans("DefaultSkin").''.$conf->global->MAIN_THEME.' '.$langs->trans("UsePersonalValue").' '.$langs->trans("UsePersonalValue").' 
    '.$langs->trans("HighlightLinesOnMouseHover").'global->THEME_ELDY_USE_HOVER?" checked":"").'> '.$langs->trans("UsePersonalValue").''; + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
    '.$langs->trans("HighlightLinesOnMouseHover").''; + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
    '.$langs->trans("TopMenuBackgroundColor").''.($conf->global->THEME_ELDY_TOPMENU_BACK1?$conf->global->THEME_ELDY_TOPMENU_BACK1:$langs->trans("Default")).'conf->THEME_ELDY_TOPMENU_BACK1)?" checked":""); + print (empty($dolibarr_main_demo) && $edit)?'':' disabled="disabled"'; // Disabled for demo + print '> '.$langs->trans("UsePersonalValue").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; + } + else + { + $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); + if ($color) print ''; + else print ''; + } + if ($edit) print '
    ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
    '.$langs->trans("HighlightLinesOnMouseHover").''; - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print ''.$langs->trans("TopMenuBackgroundColor").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; + } + else + { + $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); + if ($color) print ''; + else print $langs->trans("Default"); + } + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; + print '
    '.$langs->trans("BackgroundTableTitleColor").''; + if ($edit) + { + print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKTITLE1,array()),''),'THEME_ELDY_BACKTITLE1','formcolor',1).' '; + } + else + { + print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default")); + } + print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; print '
    '.$langs->trans("TopMenuBackgroundColor").''; - if ($edit) - { - print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''),'THEME_ELDY_TOPMENU_BACK1','formcolor',1).' '; - } - else - { - $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; - else print $langs->trans("Default"); - } - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; - print '
    '.$langs->trans("BackgroundTableTitleColor").''; - if ($edit) - { - print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKTITLE1,array()),''),'THEME_ELDY_BACKTITLE1','formcolor',1).' '; - } - else - { - print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default")); - } - print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; - print '
    '; } diff --git a/htdocs/core/lib/xcal.lib.php b/htdocs/core/lib/xcal.lib.php index 5927bf97674..14cda539291 100644 --- a/htdocs/core/lib/xcal.lib.php +++ b/htdocs/core/lib/xcal.lib.php @@ -59,12 +59,14 @@ function build_calfile($format,$title,$desc,$events_array,$outputfile) fwrite($calfileh,"CALSCALE:GREGORIAN\n"); fwrite($calfileh,"X-WR-CALNAME:".$encoding.format_cal($format,$title)."\n"); fwrite($calfileh,"X-WR-CALDESC:".$encoding.format_cal($format,$desc)."\n"); - $hh=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'hour'); - $mm=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'min'); - $ss=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'sec'); //fwrite($calfileh,"X-WR-TIMEZONE:Europe/Paris\n"); if (! empty($conf->global->MAIN_AGENDA_EXPORT_CACHE) - && $conf->global->MAIN_AGENDA_EXPORT_CACHE > 60) fwrite($calfileh,"X-PUBLISHED-TTL: P".$hh."H".$mm."M".$ss."S\n"); + && $conf->global->MAIN_AGENDA_EXPORT_CACHE > 60){ + $hh=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'hour'); + $mm=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'min'); + $ss=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'sec'); + fwrite($calfileh,"X-PUBLISHED-TTL: P".$hh."H".$mm."M".$ss."S\n"); + } foreach ($events_array as $date => $event) { diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 19ada8b9b56..b1bc55be0a8 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -23,6 +23,9 @@ insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?leftmenu=setup', 'Setup', 0, 'admin', '', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 101__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/company.php?leftmenu=setup', 'MenuCompanySetup', 1, 'admin', '', '', 2, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 102__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/ihm.php?leftmenu=setup', 'GUISetup', 1, 'admin', '', '', 2, 4, __ENTITY__); + +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 114__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/translation.php?leftmenu=setup', 'Translation', 1, 'admin', '', '', 2, 4, __ENTITY__); + insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 103__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/modules.php?leftmenu=setup', 'Modules', 1, 'admin', '', '', 2, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 104__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/boxes.php?leftmenu=setup', 'Boxes', 1, 'admin', '', '', 2, 6, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 105__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/menus.php?leftmenu=setup', 'Menus', 1, 'admin', '', '', 2, 3, __ENTITY__); @@ -197,8 +200,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/sociales/charges.php?leftmenu=tax_social&action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'accountancy', '', 2250__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)', __HANDLER__, 'left', 2300__+MAX_llx_menu__, 'accountancy', 'tax_vat', 2200__+MAX_llx_menu__, '/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy', 'VAT', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 7, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?leftmenu=tax_vat&action=create', 'NewPayment', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/reglement.php?leftmenu=tax_vat', 'Payments', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?leftmenu=tax_vat&action=create', 'New', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/reglement.php?leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2303__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/clients.php?leftmenu=tax_vat', 'ReportByCustomers', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2304__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/quadri_detail.php?leftmenu=tax_vat', 'ReportByQuarter', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); -- Ventilation (accounting) @@ -296,7 +299,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?action=create&type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); -- HRM - Holiday -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/index.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->view_log', '', 0, 3, __ENTITY__); diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 15057d6f3d7..1cafd091521 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -61,17 +61,19 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) if ($showmode == 1) { $url = $shorturl = $newTabMenu[$i]['url']; + if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url'])) { $tmp=explode('?',$newTabMenu[$i]['url'],2); $url = $shorturl = $tmp[0]; $param = (isset($tmp[1])?$tmp[1]:''); - if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + if (! preg_match('/mainmenu/i',$param) || ! preg_match('/leftmenu/i',$param)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad $url = dol_buildpath($url,1).($param?'?'.$param:''); $shorturl = $shorturl.($param?'?'.$param:''); } + $url=preg_replace('/__LOGIN__/',$user->login,$url); $shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl); $url=preg_replace('/__USERID__/',$user->id,$url); @@ -233,7 +235,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM } $title=$langs->trans("GoIntoSetupToChangeLogo"); print "\n".''."\n"; - print '
    '."\n"; + print '
    ' . $langs->trans("Categories") . ''; + print $form->showCategories($object->id, 'supplier', 1); + print "
    '.$langs->trans('NotePublic').''; - $doleditor = new DolEditor('note_public', GETPOST('note_public'), '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); + $note_public = $object->getDefaultCreateValueFor('note_public'); + $doleditor = new DolEditor('note_public', $note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); print $doleditor->Create(1); print '
    '.$langs->trans('NotePrivate').''; - $doleditor = new DolEditor('note_private', GETPOST('note_private'), '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); + $note_private = $object->getDefaultCreateValueFor('note_private'); + $doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); print $doleditor->Create(1); print '
    '.$form->editfieldkey("DateMaxPayment",'date_lim_reglement',$object->date_echeance,$object,$form_permission,'datepicker').''; print $form->editfieldval("DateMaxPayment",'date_lim_reglement',$object->date_echeance,$object,$form_permission,'datepicker'); - if ($action != 'editdate_lim_reglement' && $object->statut < FactureFournisseur::STATUS_CLOSED && $object->date_echeance && $object->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)) print img_warning($langs->trans('Late')); + if ($action != 'editdate_lim_reglement' && $object->hasDelay()) { + print img_warning($langs->trans('Late')); + } print '
    '.dol_print_date($db->jdate($objp->df),'day')."'.dol_print_date($db->jdate($objp->datelimite),'day'); - if ($objp->datelimite && $db->jdate($objp->datelimite) < ($now - $conf->facture->fournisseur->warning_delay) && ! $objp->paye && $objp->fk_statut == 1) print img_warning($langs->trans("Late")); + if ($facturestatic->hasDelay()) { + print img_warning($langs->trans("Late")); + } print "'; diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index d93f1c4beea..f5ed63108a6 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -305,7 +305,7 @@ if ($resql) print ''; print ''; print ''; - $liststatus=array('paye:0'=>$langs->trans("Unpaid"), 'paye:1'=>$langs->trans("Paid")); + $liststatus=array('fac.fk_statut:0'=>$langs->trans("Draft"),'fac.fk_statut:1,paye:0'=>$langs->trans("Unpaid"), 'paye:1'=>$langs->trans("Paid")); print $form->selectarray('filtre', $liststatus, $filter, 1); print ''; print ''; @@ -323,6 +323,10 @@ if ($resql) while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); + + $facturestatic->date_echeance = $db->jdate($obj->date_echeance); + $facturestatic->statut = $obj->fk_statut; + $var=!$var; print "
    '.dol_print_date($db->jdate($obj->datef),'day').''.dol_print_date($db->jdate($obj->date_echeance),'day'); - if (($obj->paye == 0) && ($obj->fk_statut > 0) && $obj->date_echeance && $db->jdate($obj->date_echeance) < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning"); + if ($facturestatic->hasDelay()) { + print img_picto($langs->trans("Late"),"warning"); + } print ''.dol_trunc($obj->libelle,36).''; diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 20cf8f250bd..758885cef58 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -5,11 +5,8 @@ * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005 Marc Barilley / Ocebo * Copyright (C) 2005-2012 Regis Houssin -<<<<<<< HEAD * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> -======= * Copyright (C) 2015 Marcos García ->>>>>>> refs/remotes/origin/3.6 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,6 +43,7 @@ $confirm = GETPOST('confirm'); $facid=GETPOST('facid','int'); $socid=GETPOST('socid','int'); +$accountid = GETPOST('accountid'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); @@ -200,7 +198,7 @@ if (empty($reshook)) if (! $error) { - $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$_POST['accountid'],'',''); + $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$accountid,'',''); if ($result < 0) { setEventMessage($paiement->error, 'errors'); @@ -304,7 +302,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie if (! empty($conf->banque->enabled)) { print '
    '.$langs->trans('Account').''; - $form->select_comptes(empty($_POST['accountid'])?'':$_POST['accountid'],'accountid',0,'',2); + $form->select_comptes(empty($accountid)?'':$accountid,'accountid',0,'',2); print '
    '; + print $form->select_country($search_country,'search_country'); + print ''; + print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT)); + print ''; print ''; print ''.$obj->zip.''.$obj->town.''; + $tmparray=getCountry($obj->fk_pays,'all'); + print $tmparray['label']; + print ''; + if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1); + print $typenArray[$obj->typent_code]; + print ''.$obj->code_fournisseur.' '.$obj->code_compta_fournisseur.' '.dol_print_date($db->jdate($obj->datec),'day').''.$langs->trans("Owner").''.$langs->trans("Group").''.$langs->trans("Permissions").''; + print ''; + if ($conf->use_javascript_ajax) print ''.$langs->trans("All").' / '.$langs->trans("None").' '; print ''.img_picto($langs->trans("Refresh"),'refresh').' '; print '
    "; + + if (! $ok) + { + print $mesg.'
    '."\n"; + setEventMessages($mesg, null, 'errors'); + } + + // Actions /* if ($user->rights->ftp->write && ! empty($section)) @@ -611,20 +647,43 @@ else } else { - print $langs->trans("SetupOfFTPClientModuleNotComplete"); + $s_ftp_server='FTP_SERVER_1'; + if (empty($s_ftp_server)) + { + print $langs->trans("SetupOfFTPClientModuleNotComplete"); + } + else + { + print $langs->trans("ChooseAFTPEntryIntoMenu"); + } } } print '
    '; // Close FTP connection -if ($conn_id) ftp_close($conn_id); - -// End of page -$db->close(); +if ($conn_id) +{ + if (! empty($conf->global->FTP_CONNECT_WITH_SFTP)) + { + + } + else if (! empty($conf->global->FTP_CONNECT_WITH_SSL)) + { + ftp_close($conn_id); + } + else + { + ftp_close($conn_id); + } +} + llxFooter(); +$db->close(); + + /** * Connect to FTP server @@ -642,46 +701,90 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect global $langs, $conf; $ok=1; - + $conn_id=null; + if (! is_numeric($ftp_port)) { - $mesg=$langs->trans("FailedToConnectToFTPServer",$ftp_server,$ftp_port); + $mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServer",$ftp_server,$ftp_port); $ok=0; } if ($ok) { $connecttimeout=(empty($conf->global->FTP_CONNECT_TIMEOUT)?40:$conf->global->FTP_CONNECT_TIMEOUT); - if (! empty($conf->global->FTP_CONNECT_WITH_SSL)) $conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout); - else $conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout); - if ($conn_id) + if (! empty($conf->global->FTP_CONNECT_WITH_SFTP)) + { + dol_syslog('Try to connect with ssh2_ftp'); + $tmp_conn_id = ssh2_connect($ftp_server, $ftp_port); + } + else if (! empty($conf->global->FTP_CONNECT_WITH_SSL)) + { + dol_syslog('Try to connect with ftp_ssl_connect'); + $conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout); + } + else + { + dol_syslog('Try to connect with ftp_connect'); + $conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout); + } + if ($conn_id || $tmp_conn_id) { if ($ftp_user) { - if (ftp_login($conn_id, $ftp_user, $ftp_password)) + if (! empty($conf->global->FTP_CONNECT_WITH_SFTP)) { - // Turn on passive mode transfers (must be after a successful login - if ($ftp_passive) ftp_pasv($conn_id, true); - - // Change the dir - $newsectioniso=utf8_decode($section); - ftp_chdir($conn_id, $newsectioniso); - } + if (ssh2_auth_password($tmp_conn_id, $ftp_user, $ftp_password)) + { + // Turn on passive mode transfers (must be after a successful login + //if ($ftp_passive) ftp_pasv($conn_id, true); + + // Change the dir + $newsectioniso=utf8_decode($section); + //ftp_chdir($conn_id, $newsectioniso); + $conn_id = ssh2_sftp($tmp_conn_id); + if (! $conn_id) + { + $mesg=$langs->transnoentitiesnoconv("FailedToConnectToSFTPAfterSSHAuthentication"); + $ok=0; + $error++; + } + } + else + { + $mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); + $ok=0; + $error++; + } + } else { - $mesg=$langs->trans("FailedToConnectToFTPServerWithCredentials"); - $ok=0; + if (ftp_login($conn_id, $ftp_user, $ftp_password)) + { + // Turn on passive mode transfers (must be after a successful login + if ($ftp_passive) ftp_pasv($conn_id, true); + + // Change the dir + $newsectioniso=utf8_decode($section); + ftp_chdir($conn_id, $newsectioniso); + } + else + { + $mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials"); + $ok=0; + $error++; + } } } } else { - $mesg=$langs->trans("FailedToConnectToFTPServer",$ftp_server,$ftp_port); + dol_syslog('FailedToConnectToFTPServer '.$ftp_server.' '.$ftp_port, LOG_ERR); + $mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServer",$ftp_server,$ftp_port); $ok=0; } } - $arrayresult=array('conn_id'=>$conn_id, 'ok'=>$ok, 'mesg'=>$mesg); + $arrayresult=array('conn_id'=>$conn_id, 'ok'=>$ok, 'mesg'=>$mesg, 'curdir'=>$section, 'curdiriso'=>$newsectioniso); return $arrayresult; } diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 23c78641462..ebda47dd196 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -51,11 +51,12 @@ $now=dol_now(); * Actions */ +// If create a request if ($action == 'create') { $cp = new Holiday($db); - // Si pas le droit de créer une demande + // If no right to create a request if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all))) { $error++; @@ -83,21 +84,21 @@ if ($action == 'create') $description = trim(GETPOST('description')); $userID = GETPOST('userID'); - // Si pas de date de début + // If no start date if (empty($date_debut)) { header('Location: card.php?action=request&error=nodatedebut'); exit; } - // Si pas de date de fin + // If no end date if (empty($date_fin)) { header('Location: card.php?action=request&error=nodatefin'); exit; } - // Si date de début après la date de fin + // If start date after end date if ($date_debut > $date_fin) { header('Location: card.php?action=request&error=datefin'); @@ -112,7 +113,7 @@ if ($action == 'create') exit; } - // Si aucun jours ouvrés dans la demande + // If there is no Business Days within request $nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday); if($nbopenedday < 0.5) { @@ -120,7 +121,7 @@ if ($action == 'create') exit; } - // Si pas de validateur choisi + // If no validator designated if ($valideur < 1) { header('Location: card.php?action=request&error=Valideur'); @@ -137,7 +138,7 @@ if ($action == 'create') $verif = $cp->create($user); - // Si pas d'erreur SQL on redirige vers la fiche de la demande + // If no SQL error we redirect to the request card if ($verif > 0) { $db->commit(); @@ -149,7 +150,7 @@ if ($action == 'create') { $db->rollback(); - // Sinon on affiche le formulaire de demande avec le message d'erreur SQL + // Otherwise we display the request form with the SQL error message header('Location: card.php?action=request&error=SQL_Create&msg='.$cp->error); exit; } @@ -169,7 +170,7 @@ if ($action == 'update') else if ($starthalfday == 'afternoon') $halfday=-1; else if ($endhalfday == 'morning') $halfday=1; - // Si pas le droit de modifier une demande + // If no right to modify a request if (! $user->rights->holiday->write) { header('Location: card.php?action=request&error=CantUpdate'); @@ -181,40 +182,40 @@ if ($action == 'update') $canedit=(($user->id == $cp->fk_user && $user->rights->holiday->write) || ($user->id != $cp->fk_user && $user->rights->holiday->write_all)); - // Si en attente de validation + // If under validation if ($cp->statut == 1) { - // Si c'est le créateur ou qu'il a le droit de tout lire / modifier + // If this is the requestor or has read/write rights if ($canedit) { $valideur = $_POST['valideur']; $description = trim($_POST['description']); - // Si pas de date de début + // If no start date if (empty($_POST['date_debut_'])) { header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatedebut'); exit; } - // Si pas de date de fin + // If no end date if (empty($_POST['date_fin_'])) { header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatefin'); exit; } - // Si date de début après la date de fin + // If start date after end date if ($date_debut > $date_fin) { header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=datefin'); exit; } - // Si pas de valideur choisi + // If no validator designated if ($valideur < 1) { header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=Valideur'); exit; } - // Si pas de jours ouvrés dans la demande + // If there is no Business Days within request $nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday); if ($nbopenedday < 0.5) { @@ -237,7 +238,7 @@ if ($action == 'update') } else { - // Sinon on affiche le formulaire de demande avec le message d'erreur SQL + // Otherwise we display the request form with the SQL error message header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=SQL_Create&msg='.$cp->error); exit; } @@ -248,7 +249,7 @@ if ($action == 'update') } } -// Si suppression de la demande +// If delete of request if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights->holiday->delete) { $error=0; @@ -260,7 +261,7 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights- $canedit=(($user->id == $cp->fk_user && $user->rights->holiday->write) || ($user->id != $cp->fk_user && $user->rights->holiday->write_all)); - // Si c'est bien un brouillon + // If this is a rough draft if ($cp->statut == 1 || $cp->statut == 3) { // Si l'utilisateur à le droit de lire cette demande, il peut la supprimer diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index c0179c55bd0..3c5d9f40ab4 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -102,7 +102,7 @@ if ($action == 'update' && isset($_POST['update_cp'])) } } - if (! $error) setEventMessages($langs->trans('UpdateConfCPOK'), '', 'mesgs'); + if (! $error) setEventMessages('UpdateConfCPOK', '', 'mesgs'); } elseif($action == 'add_event') { @@ -122,7 +122,7 @@ elseif($action == 'add_event') if ($error) { - setEventMessages($langs->trans('ErrorAddEventToUserCP'), '', 'errors'); + setEventMessages('ErrorAddEventToUserCP', '', 'errors'); } else { @@ -135,7 +135,7 @@ elseif($action == 'add_event') $holiday->updateSoldeCP($userCP,$new_holiday); - setEventMessages($langs->trans('AddEventToUserOkCP'), '', 'mesgs'); + setEventMessages('AddEventToUserOkCP', '', 'mesgs'); } } diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index f5d67b13517..4e10fbf925c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -18,7 +18,7 @@ */ /** - * \file htdocs/holiday/index.php + * \file htdocs/holiday/list.php * \ingroup holiday * \brief List of holiday. */ @@ -282,7 +282,7 @@ print "\n"; // FILTRES print ''; print ''; -print ''; +print ''; print ''; // DATE CREATE diff --git a/htdocs/imports/class/import.class.php b/htdocs/imports/class/import.class.php index b846d158227..2c17dd44f02 100644 --- a/htdocs/imports/class/import.class.php +++ b/htdocs/imports/class/import.class.php @@ -146,7 +146,7 @@ class Import $this->array_import_entities[$i]=$module->import_entities_array[$r]; // Tableau des alias a exporter (cle=champ, valeur=alias) $this->array_import_regex[$i]=$module->import_regex_array[$r]; - // Tableau des alias a exporter (cle=champ, valeur=exemple) + // Array of examples $this->array_import_examplevalues[$i]=$module->import_examplevalues_array[$r]; // Tableau des regles de conversion d'une valeur depuis une autre source (cle=champ, valeur=tableau des regles) $this->array_import_convertvalue[$i]=(isset($module->import_convertvalue_array[$r])?$module->import_convertvalue_array[$r]:''); diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 9c48c680c3f..a103a304630 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -1335,10 +1335,10 @@ if ($step == 5 && $datatoimport) continue; } if ($excludefirstline && $sourcelinenb == 1) continue; - + // $result=$obj->import_insert($arrayrecord,$array_match_file_to_database,$objimport,count($fieldssource),$importid); - + if (count($obj->errors)) $arrayoferrors[$sourcelinenb]=$obj->errors; if (count($obj->warnings)) $arrayofwarnings[$sourcelinenb]=$obj->warnings; if (! count($obj->errors) && ! count($obj->warnings)) $nbok++; diff --git a/htdocs/includes/chromephp/ChromePhp.php b/htdocs/includes/ccampbell/chromephp/ChromePhp.php old mode 100644 new mode 100755 similarity index 100% rename from htdocs/includes/chromephp/ChromePhp.php rename to htdocs/includes/ccampbell/chromephp/ChromePhp.php diff --git a/htdocs/includes/chromephp/README.md b/htdocs/includes/ccampbell/chromephp/README.md similarity index 100% rename from htdocs/includes/chromephp/README.md rename to htdocs/includes/ccampbell/chromephp/README.md diff --git a/htdocs/includes/chromephp/composer.json b/htdocs/includes/ccampbell/chromephp/composer.json similarity index 100% rename from htdocs/includes/chromephp/composer.json rename to htdocs/includes/ccampbell/chromephp/composer.json diff --git a/htdocs/includes/ckeditor/CHANGES.md b/htdocs/includes/ckeditor/ckeditor/CHANGES.md similarity index 100% rename from htdocs/includes/ckeditor/CHANGES.md rename to htdocs/includes/ckeditor/ckeditor/CHANGES.md diff --git a/htdocs/includes/ckeditor/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/LICENSE.md diff --git a/htdocs/includes/ckeditor/README.md b/htdocs/includes/ckeditor/ckeditor/README.md similarity index 100% rename from htdocs/includes/ckeditor/README.md rename to htdocs/includes/ckeditor/ckeditor/README.md diff --git a/htdocs/includes/ckeditor/_source/CHANGES.md b/htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md similarity index 100% rename from htdocs/includes/ckeditor/_source/CHANGES.md rename to htdocs/includes/ckeditor/ckeditor/_source/CHANGES.md diff --git a/htdocs/includes/ckeditor/_source/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/_source/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/_source/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/_source/LICENSE.md diff --git a/htdocs/includes/ckeditor/_source/README.md b/htdocs/includes/ckeditor/ckeditor/_source/README.md similarity index 100% rename from htdocs/includes/ckeditor/_source/README.md rename to htdocs/includes/ckeditor/ckeditor/_source/README.md diff --git a/htdocs/includes/ckeditor/_source/build-config.js b/htdocs/includes/ckeditor/ckeditor/_source/build-config.js similarity index 100% rename from htdocs/includes/ckeditor/_source/build-config.js rename to htdocs/includes/ckeditor/ckeditor/_source/build-config.js diff --git a/htdocs/includes/ckeditor/_source/ckeditor.js b/htdocs/includes/ckeditor/ckeditor/_source/ckeditor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/ckeditor.js rename to htdocs/includes/ckeditor/ckeditor/_source/ckeditor.js diff --git a/htdocs/includes/ckeditor/_source/config.js b/htdocs/includes/ckeditor/ckeditor/_source/config.js similarity index 100% rename from htdocs/includes/ckeditor/_source/config.js rename to htdocs/includes/ckeditor/ckeditor/_source/config.js diff --git a/htdocs/includes/ckeditor/_source/contents.css b/htdocs/includes/ckeditor/ckeditor/_source/contents.css similarity index 100% rename from htdocs/includes/ckeditor/_source/contents.css rename to htdocs/includes/ckeditor/ckeditor/_source/contents.css diff --git a/htdocs/includes/ckeditor/_source/core/_bootstrap.js b/htdocs/includes/ckeditor/ckeditor/_source/core/_bootstrap.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/_bootstrap.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/_bootstrap.js diff --git a/htdocs/includes/ckeditor/_source/core/ckeditor.js b/htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/ckeditor.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor.js diff --git a/htdocs/includes/ckeditor/_source/core/ckeditor_base.js b/htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_base.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/ckeditor_base.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_base.js diff --git a/htdocs/includes/ckeditor/_source/core/ckeditor_basic.js b/htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_basic.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/ckeditor_basic.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/ckeditor_basic.js diff --git a/htdocs/includes/ckeditor/_source/core/command.js b/htdocs/includes/ckeditor/ckeditor/_source/core/command.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/command.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/command.js diff --git a/htdocs/includes/ckeditor/_source/core/commanddefinition.js b/htdocs/includes/ckeditor/ckeditor/_source/core/commanddefinition.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/commanddefinition.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/commanddefinition.js diff --git a/htdocs/includes/ckeditor/_source/core/config.js b/htdocs/includes/ckeditor/ckeditor/_source/core/config.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/config.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/config.js diff --git a/htdocs/includes/ckeditor/_source/core/creators/inline.js b/htdocs/includes/ckeditor/ckeditor/_source/core/creators/inline.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/creators/inline.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/creators/inline.js diff --git a/htdocs/includes/ckeditor/_source/core/creators/themedui.js b/htdocs/includes/ckeditor/ckeditor/_source/core/creators/themedui.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/creators/themedui.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/creators/themedui.js diff --git a/htdocs/includes/ckeditor/_source/core/dataprocessor.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dataprocessor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dataprocessor.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dataprocessor.js diff --git a/htdocs/includes/ckeditor/_source/core/dom.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/comment.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/comment.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/comment.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/comment.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/document.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/document.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/document.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/document.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/documentfragment.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/documentfragment.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/documentfragment.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/documentfragment.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/domobject.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/domobject.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/domobject.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/domobject.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/element.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/element.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/element.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/element.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/elementpath.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/elementpath.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/elementpath.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/elementpath.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/event.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/event.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/event.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/event.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/iterator.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/iterator.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/iterator.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/iterator.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/node.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/node.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/node.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/node.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/nodelist.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/nodelist.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/nodelist.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/nodelist.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/range.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/range.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/range.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/range.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/rangelist.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/rangelist.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/rangelist.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/rangelist.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/text.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/text.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/text.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/text.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/walker.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/walker.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/walker.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/walker.js diff --git a/htdocs/includes/ckeditor/_source/core/dom/window.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dom/window.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dom/window.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dom/window.js diff --git a/htdocs/includes/ckeditor/_source/core/dtd.js b/htdocs/includes/ckeditor/ckeditor/_source/core/dtd.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/dtd.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/dtd.js diff --git a/htdocs/includes/ckeditor/_source/core/editable.js b/htdocs/includes/ckeditor/ckeditor/_source/core/editable.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/editable.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/editable.js diff --git a/htdocs/includes/ckeditor/_source/core/editor.js b/htdocs/includes/ckeditor/ckeditor/_source/core/editor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/editor.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/editor.js diff --git a/htdocs/includes/ckeditor/_source/core/editor_basic.js b/htdocs/includes/ckeditor/ckeditor/_source/core/editor_basic.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/editor_basic.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/editor_basic.js diff --git a/htdocs/includes/ckeditor/_source/core/env.js b/htdocs/includes/ckeditor/ckeditor/_source/core/env.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/env.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/env.js diff --git a/htdocs/includes/ckeditor/_source/core/event.js b/htdocs/includes/ckeditor/ckeditor/_source/core/event.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/event.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/event.js diff --git a/htdocs/includes/ckeditor/_source/core/eventInfo.js b/htdocs/includes/ckeditor/ckeditor/_source/core/eventInfo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/eventInfo.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/eventInfo.js diff --git a/htdocs/includes/ckeditor/_source/core/filter.js b/htdocs/includes/ckeditor/ckeditor/_source/core/filter.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/filter.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/filter.js diff --git a/htdocs/includes/ckeditor/_source/core/focusmanager.js b/htdocs/includes/ckeditor/ckeditor/_source/core/focusmanager.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/focusmanager.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/focusmanager.js diff --git a/htdocs/includes/ckeditor/_source/core/htmldataprocessor.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmldataprocessor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmldataprocessor.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmldataprocessor.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/basicwriter.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/basicwriter.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/cdata.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/cdata.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/cdata.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/cdata.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/comment.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/comment.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/comment.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/comment.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/element.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/element.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/element.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/element.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/filter.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/filter.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/filter.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/filter.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/fragment.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/fragment.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/fragment.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/fragment.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/node.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/node.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/node.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/node.js diff --git a/htdocs/includes/ckeditor/_source/core/htmlparser/text.js b/htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/text.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/htmlparser/text.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/htmlparser/text.js diff --git a/htdocs/includes/ckeditor/_source/core/keystrokehandler.js b/htdocs/includes/ckeditor/ckeditor/_source/core/keystrokehandler.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/keystrokehandler.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/keystrokehandler.js diff --git a/htdocs/includes/ckeditor/_source/core/lang.js b/htdocs/includes/ckeditor/ckeditor/_source/core/lang.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/lang.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/lang.js diff --git a/htdocs/includes/ckeditor/_source/core/loader.js b/htdocs/includes/ckeditor/ckeditor/_source/core/loader.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/loader.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/loader.js diff --git a/htdocs/includes/ckeditor/_source/core/plugindefinition.js b/htdocs/includes/ckeditor/ckeditor/_source/core/plugindefinition.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/plugindefinition.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/plugindefinition.js diff --git a/htdocs/includes/ckeditor/_source/core/plugins.js b/htdocs/includes/ckeditor/ckeditor/_source/core/plugins.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/plugins.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/plugins.js diff --git a/htdocs/includes/ckeditor/_source/core/resourcemanager.js b/htdocs/includes/ckeditor/ckeditor/_source/core/resourcemanager.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/resourcemanager.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/resourcemanager.js diff --git a/htdocs/includes/ckeditor/_source/core/scriptloader.js b/htdocs/includes/ckeditor/ckeditor/_source/core/scriptloader.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/scriptloader.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/scriptloader.js diff --git a/htdocs/includes/ckeditor/_source/core/selection.js b/htdocs/includes/ckeditor/ckeditor/_source/core/selection.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/selection.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/selection.js diff --git a/htdocs/includes/ckeditor/_source/core/skin.js b/htdocs/includes/ckeditor/ckeditor/_source/core/skin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/skin.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/skin.js diff --git a/htdocs/includes/ckeditor/_source/core/style.js b/htdocs/includes/ckeditor/ckeditor/_source/core/style.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/style.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/style.js diff --git a/htdocs/includes/ckeditor/_source/core/template.js b/htdocs/includes/ckeditor/ckeditor/_source/core/template.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/template.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/template.js diff --git a/htdocs/includes/ckeditor/_source/core/tools.js b/htdocs/includes/ckeditor/ckeditor/_source/core/tools.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/tools.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/tools.js diff --git a/htdocs/includes/ckeditor/_source/core/ui.js b/htdocs/includes/ckeditor/ckeditor/_source/core/ui.js similarity index 100% rename from htdocs/includes/ckeditor/_source/core/ui.js rename to htdocs/includes/ckeditor/ckeditor/_source/core/ui.js diff --git a/htdocs/includes/ckeditor/_source/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/_source/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/_source/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/_source/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/a11yhelp/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/a11yhelp/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/dialogs/about.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/dialogs/about.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/dialogs/hidpi/logo_ckeditor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/hidpi/logo_ckeditor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/dialogs/hidpi/logo_ckeditor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/hidpi/logo_ckeditor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/about/icons/about.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/about.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/icons/about.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/about.png diff --git a/htdocs/includes/ckeditor/_source/plugins/about/icons/hidpi/about.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/hidpi/about.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/icons/hidpi/about.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/icons/hidpi/about.png diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/about/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/about/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/about/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/about/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/bold.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/bold.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/bold.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/bold.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/bold.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/bold.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/bold.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/bold.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/italic.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/italic.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/italic.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/italic.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/strike.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/strike.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/strike.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/strike.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/subscript.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/subscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/subscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/subscript.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/superscript.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/superscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/superscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/superscript.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/underline.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/underline.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/hidpi/underline.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/hidpi/underline.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/italic.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/italic.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/italic.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/italic.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/strike.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/strike.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/strike.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/strike.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/subscript.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/subscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/subscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/subscript.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/superscript.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/superscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/superscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/superscript.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/underline.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/underline.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/icons/underline.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/icons/underline.png diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/basicstyles/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/basicstyles/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/icons/bidiltr.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/bidiltr.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/icons/bidiltr.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/bidiltr.png diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/icons/bidirtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/bidirtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/icons/bidirtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/bidirtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/icons/hidpi/bidiltr.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/hidpi/bidiltr.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/icons/hidpi/bidiltr.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/hidpi/bidiltr.png diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/icons/hidpi/bidirtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/hidpi/bidirtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/icons/hidpi/bidirtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/icons/hidpi/bidirtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/bidi/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/bidi/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/bidi/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/icons/blockquote.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/blockquote.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/icons/blockquote.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/blockquote.png diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/icons/hidpi/blockquote.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/hidpi/blockquote.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/icons/hidpi/blockquote.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/icons/hidpi/blockquote.png diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/blockquote/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/blockquote/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/button/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/button/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/button/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/button/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/dev/clipboard.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dev/clipboard.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/dev/clipboard.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dev/clipboard.html diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/dialogs/paste.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/dialogs/paste.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/copy-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/copy-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/copy.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/copy.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/copy.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/cut-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/cut-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/cut.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/cut.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/cut.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/copy-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/copy-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/copy.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/copy.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/copy.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/cut-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/cut-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/cut.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/cut.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/cut.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/paste-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/paste-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/paste.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/hidpi/paste.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/hidpi/paste.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/paste-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/paste-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/icons/paste.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/icons/paste.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/icons/paste.png diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/clipboard/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/clipboard/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/bgcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/bgcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/bgcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/bgcolor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/hidpi/bgcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/hidpi/bgcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/hidpi/bgcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/hidpi/bgcolor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/hidpi/textcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/hidpi/textcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/hidpi/textcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/hidpi/textcolor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/textcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/textcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/icons/textcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/icons/textcolor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colorbutton/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colorbutton/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/colordialog/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/colordialog/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/contextmenu/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/contextmenu/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/dialog/dialogDefinition.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialog/dialogDefinition.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js diff --git a/htdocs/includes/ckeditor/_source/plugins/dialog/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialog/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/assets/my_dialog.js diff --git a/htdocs/includes/ckeditor/_source/plugins/dialog/samples/dialog.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/dialog.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialog/samples/dialog.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialog/samples/dialog.html diff --git a/htdocs/includes/ckeditor/_source/plugins/dialogadvtab/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialogadvtab/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/dialogui/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/dialogui/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/dialogs/div.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/dialogs/div.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/icons/creatediv.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/icons/creatediv.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/icons/creatediv.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/icons/creatediv.png diff --git a/htdocs/includes/ckeditor/_source/plugins/div/icons/hidpi/creatediv.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/icons/hidpi/creatediv.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/icons/hidpi/creatediv.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/icons/hidpi/creatediv.png diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/div/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/div/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/div/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/div/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/elementspath/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/elementspath/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/enterkey/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/enterkey/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/enterkey/samples/enterkey.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/enterkey/samples/enterkey.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/enterkey/samples/enterkey.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/enterkey/samples/enterkey.html diff --git a/htdocs/includes/ckeditor/_source/plugins/entities/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/entities/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/entities/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/entities/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/images/spacer.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/images/spacer.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/images/spacer.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/images/spacer.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/fakeobjects/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/fakeobjects/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/filebrowser/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/filebrowser/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/dialogs/find.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/dialogs/find.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/find-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/find-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/find-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/find-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/find.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/find.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/find.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/find.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/find-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/find-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/find-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/find-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/find.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/find.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/find.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/find.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/replace.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/replace.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/hidpi/replace.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/hidpi/replace.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/icons/replace.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/replace.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/icons/replace.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/icons/replace.png diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/find/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/find/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/find/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/find/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/dialogs/flash.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/dialogs/flash.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/icons/flash.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/icons/flash.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/icons/flash.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/icons/flash.png diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/icons/hidpi/flash.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/icons/hidpi/flash.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/icons/hidpi/flash.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/icons/hidpi/flash.png diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/images/placeholder.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/images/placeholder.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/images/placeholder.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/images/placeholder.png diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/flash/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/flash/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/flash/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/floatingspace/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/floatingspace/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/floatingspace/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/floatingspace/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/floatpanel/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/floatpanel/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/font/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/font/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/font/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/font/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/format/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/format/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/format/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/format/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/button.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/button.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/checkbox.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/checkbox.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/form.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/form.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/radio.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/radio.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/select.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/select.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/textarea.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/textarea.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/dialogs/textfield.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/dialogs/textfield.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/button.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/button.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/button.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/button.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/checkbox.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/checkbox.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/checkbox.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/checkbox.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/form.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/form.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/form.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/form.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hiddenfield.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hiddenfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hiddenfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hiddenfield.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/button.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/button.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/button.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/button.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/checkbox.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/checkbox.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/checkbox.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/checkbox.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/form.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/form.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/form.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/form.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/hiddenfield.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/hiddenfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/hiddenfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/hiddenfield.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/imagebutton.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/imagebutton.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/imagebutton.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/imagebutton.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/radio.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/radio.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/radio.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/radio.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/select-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/select-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/select-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/select-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/select.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/select.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/select.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/select.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textarea-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textarea-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textarea-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textarea-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textarea.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textarea.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textarea.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textarea.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textfield-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textfield-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textfield-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textfield-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textfield.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/hidpi/textfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/hidpi/textfield.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/imagebutton.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/imagebutton.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/imagebutton.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/imagebutton.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/radio.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/radio.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/radio.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/radio.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/select-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/select-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/select-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/select-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/select.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/select.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/select.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/select.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/textarea-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textarea-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/textarea-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textarea-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/textarea.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textarea.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/textarea.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textarea.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/textfield-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textfield-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/textfield-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textfield-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/icons/textfield.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/icons/textfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/icons/textfield.png diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/images/hiddenfield.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/images/hiddenfield.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/images/hiddenfield.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/images/hiddenfield.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/forms/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/forms/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/forms/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/icons/hidpi/horizontalrule.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/hidpi/horizontalrule.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/icons/hidpi/horizontalrule.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/hidpi/horizontalrule.png diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/icons/horizontalrule.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/horizontalrule.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/icons/horizontalrule.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/icons/horizontalrule.png diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/horizontalrule/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/horizontalrule/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/outputforflash.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/outputforflash.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/outputforflash.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/outputforflash.html diff --git a/htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/outputhtml.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/outputhtml.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/htmlwriter/samples/outputhtml.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/htmlwriter/samples/outputhtml.html diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/dialogs/iframe.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/dialogs/iframe.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/icons/hidpi/iframe.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/icons/hidpi/iframe.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/icons/hidpi/iframe.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/icons/hidpi/iframe.png diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/icons/iframe.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/icons/iframe.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/icons/iframe.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/icons/iframe.png diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/images/placeholder.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/images/placeholder.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/images/placeholder.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/images/placeholder.png diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/iframe/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/iframe/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/iframe/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/dialogs/image.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/dialogs/image.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/icons/hidpi/image.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/icons/hidpi/image.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/icons/hidpi/image.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/icons/hidpi/image.png diff --git a/htdocs/includes/ckeditor/_source/plugins/image/icons/image.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/icons/image.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/icons/image.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/icons/image.png diff --git a/htdocs/includes/ckeditor/_source/plugins/image/images/noimage.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/images/noimage.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/images/noimage.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/images/noimage.png diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/image/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/image/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/image/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/image/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/dev/indent.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/dev/indent.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/dev/indent.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/dev/indent.html diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/indent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/indent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/indent.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/indent.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/indent.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/outdent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/outdent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/outdent.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/hidpi/outdent.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/hidpi/outdent.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/indent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/indent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/indent.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/indent.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/indent.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/outdent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/outdent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/icons/outdent.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/icons/outdent.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/icons/outdent.png diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indent/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indent/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indent/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indentblock/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indentblock/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indentblock/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indentblock/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/indentlist/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/indentlist/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/indentlist/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/indentlist/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyblock.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyblock.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyblock.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyblock.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifycenter.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifycenter.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifycenter.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifycenter.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyleft.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyleft.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyleft.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyleft.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyright.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyright.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/hidpi/justifyright.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/hidpi/justifyright.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyblock.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyblock.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyblock.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyblock.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/justifycenter.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifycenter.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/justifycenter.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifycenter.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyleft.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyleft.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyleft.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyleft.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyright.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyright.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/icons/justifyright.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/icons/justifyright.png diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/justify/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/justify/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/justify/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/icons/hidpi/language.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/icons/hidpi/language.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/icons/hidpi/language.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/icons/hidpi/language.png diff --git a/htdocs/includes/ckeditor/_source/plugins/language/icons/language.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/icons/language.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/icons/language.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/icons/language.png diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/language/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/language/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/language/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/language/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/dialogs/anchor.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/dialogs/anchor.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/dialogs/link.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/dialogs/link.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/anchor-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/anchor-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/anchor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/anchor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/anchor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/anchor-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/anchor-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/anchor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/anchor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/anchor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/link.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/link.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/link.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/link.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/unlink.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/unlink.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/hidpi/unlink.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/hidpi/unlink.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/link.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/link.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/link.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/link.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/icons/unlink.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/unlink.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/icons/unlink.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/icons/unlink.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/images/anchor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/images/anchor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/anchor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/images/hidpi/anchor.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/hidpi/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/images/hidpi/anchor.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/images/hidpi/anchor.png diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/link/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/link/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/link/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/link/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/bulletedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/bulletedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/bulletedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/bulletedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/bulletedlist.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/bulletedlist.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/numberedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/numberedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/numberedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/hidpi/numberedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/hidpi/numberedlist.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/numberedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/numberedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/icons/numberedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/icons/numberedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/icons/numberedlist.png diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/list/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/list/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/list/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/list/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/listblock/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/listblock/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/listblock/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/listblock/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/liststyle/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/liststyle/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/dev/magicline.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/dev/magicline.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/dev/magicline.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/dev/magicline.html diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/images/hidpi/icon.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/hidpi/icon.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/images/hidpi/icon.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/hidpi/icon.png diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/images/icon.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/icon.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/images/icon.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/images/icon.png diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/magicline/samples/magicline.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/samples/magicline.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/magicline/samples/magicline.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/magicline/samples/magicline.html diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/icons/hidpi/maximize.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/hidpi/maximize.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/icons/hidpi/maximize.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/hidpi/maximize.png diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/icons/maximize.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/maximize.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/icons/maximize.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/icons/maximize.png diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/maximize/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/maximize/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/maximize/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/menu/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/menu/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/menu/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/menu/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/menubutton/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/menubutton/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/icons/hidpi/newpage-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/hidpi/newpage-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/icons/hidpi/newpage-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/hidpi/newpage-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/icons/hidpi/newpage.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/hidpi/newpage.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/icons/hidpi/newpage.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/hidpi/newpage.png diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/icons/newpage-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/newpage-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/icons/newpage-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/newpage-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/icons/newpage.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/newpage.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/icons/newpage.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/icons/newpage.png diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/newpage/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/newpage/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/newpage/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/hidpi/pagebreak.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/pagebreak-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/pagebreak-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/pagebreak-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/pagebreak-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/pagebreak.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/pagebreak.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/icons/pagebreak.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/icons/pagebreak.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pagebreak/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pagebreak/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/panel/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/panel/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/panel/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/panel/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/panelbutton/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/panelbutton/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/filter/default.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/filter/default.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/hidpi/pastefromword.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/pastefromword-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/pastefromword-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/pastefromword.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/icons/pastefromword.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/icons/pastefromword.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastefromword/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastefromword/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/hidpi/pastetext.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/icons/pastetext-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/icons/pastetext-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/icons/pastetext.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/icons/pastetext.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/icons/pastetext.png diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/pastetext/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/pastetext/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/popup/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/popup/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/popup/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/popup/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/icons/hidpi/preview-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/hidpi/preview-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/icons/hidpi/preview-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/hidpi/preview-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/icons/hidpi/preview.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/hidpi/preview.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/icons/hidpi/preview.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/hidpi/preview.png diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/icons/preview-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/preview-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/icons/preview-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/preview-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/icons/preview.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/preview.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/icons/preview.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/icons/preview.png diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/preview/preview.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/preview.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/preview/preview.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/preview/preview.html diff --git a/htdocs/includes/ckeditor/_source/plugins/print/icons/hidpi/print.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/icons/hidpi/print.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/icons/hidpi/print.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/icons/hidpi/print.png diff --git a/htdocs/includes/ckeditor/_source/plugins/print/icons/print.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/icons/print.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/icons/print.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/icons/print.png diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/print/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/print/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/print/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/print/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/icons/hidpi/removeformat.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/hidpi/removeformat.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/icons/hidpi/removeformat.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/hidpi/removeformat.png diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/icons/removeformat.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/removeformat.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/icons/removeformat.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/icons/removeformat.png diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/removeformat/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/removeformat/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/resize/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/resize/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/resize/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/resize/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/richcombo/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/richcombo/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/icons/hidpi/save.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/icons/hidpi/save.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/icons/hidpi/save.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/icons/hidpi/save.png diff --git a/htdocs/includes/ckeditor/_source/plugins/save/icons/save.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/icons/save.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/icons/save.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/icons/save.png diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/save/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/save/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/save/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/save/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/README.md b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/README.md similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/README.md rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/README.md diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/dialogs/options.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/dialogs/options.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/dialogs/toolbar.css b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/dialogs/toolbar.css rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/icons/hidpi/scayt.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/hidpi/scayt.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/icons/hidpi/scayt.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/hidpi/scayt.png diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/icons/scayt.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/scayt.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/icons/scayt.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/icons/scayt.png diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/scayt/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/scayt/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/icons/hidpi/selectall.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/icons/hidpi/selectall.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/icons/hidpi/selectall.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/icons/hidpi/selectall.png diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/icons/selectall.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/icons/selectall.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/icons/selectall.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/icons/selectall.png diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/selectall/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/selectall/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/selectall/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/hidpi/showblocks.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/icons/showblocks-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/showblocks-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/icons/showblocks-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/showblocks-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/icons/showblocks.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/showblocks.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/icons/showblocks.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/icons/showblocks.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_address.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_address.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_address.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_address.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_blockquote.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_blockquote.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_blockquote.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_blockquote.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_div.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_div.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_div.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_div.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h1.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h1.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h1.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h1.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h2.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h2.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h2.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h2.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h3.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h3.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h3.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h3.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h4.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h4.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h4.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h4.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h5.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h5.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h5.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h5.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h6.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h6.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_h6.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h6.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_p.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_p.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_p.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_p.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_pre.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_pre.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/images/block_pre.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/images/block_pre.png diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showblocks/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showblocks/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/showborders/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/showborders/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/showborders/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/showborders/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/dialogs/smiley.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/dialogs/smiley.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/icons/hidpi/smiley.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/icons/hidpi/smiley.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/icons/hidpi/smiley.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/icons/hidpi/smiley.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/icons/smiley.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/icons/smiley.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/icons/smiley.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/icons/smiley.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/angel_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/angel_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/angel_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/angel_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/angry_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/angry_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/angry_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/angry_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/broken_heart.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/broken_heart.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/broken_heart.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/broken_heart.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/confused_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/confused_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/confused_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/confused_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/cry_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/cry_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/cry_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/cry_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/devil_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/devil_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/devil_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/devil_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/embarrassed_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/embarrassed_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/embarrassed_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/embarrassed_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/embarrassed_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/envelope.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/envelope.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/envelope.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/envelope.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/heart.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/heart.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/heart.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/heart.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/heart.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/kiss.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/kiss.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/kiss.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/kiss.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/lightbulb.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/lightbulb.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/lightbulb.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/lightbulb.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/omg_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/omg_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/omg_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/omg_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/regular_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/regular_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/regular_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/regular_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/sad_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/sad_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/sad_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/sad_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/shades_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/shades_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/shades_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/shades_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/teeth_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/teeth_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/teeth_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/teeth_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_down.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_down.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_down.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_down.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_up.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_up.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_up.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/thumbs_up.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/tongue_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/tongue_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/tongue_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/tongue_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tongue_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/tounge_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tounge_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/tounge_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/tounge_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/wink_smile.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/wink_smile.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/images/wink_smile.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/images/wink_smile.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.png diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/smiley/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/smiley/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/smiley/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/hidpi/source-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/hidpi/source-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/hidpi/source-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/hidpi/source-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/hidpi/source.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/hidpi/source.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/hidpi/source.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/hidpi/source.png diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/source-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/source-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/source-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/source-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/source.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/source.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/icons/source.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/icons/source.png diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/sourcearea/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/sourcearea/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/icons/hidpi/specialchar.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/hidpi/specialchar.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/icons/hidpi/specialchar.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/hidpi/specialchar.png diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/icons/specialchar.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/specialchar.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/icons/specialchar.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/icons/specialchar.png diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/specialchar/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/specialchar/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/stylescombo/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/stylescombo/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/tab/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/tab/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/tab/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/tab/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/dialogs/table.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/dialogs/table.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/icons/hidpi/table.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/hidpi/table.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/icons/hidpi/table.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/hidpi/table.png diff --git a/htdocs/includes/ckeditor/_source/plugins/table/icons/table.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/table.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/icons/table.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/icons/table.png diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/table/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/table/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/table/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/table/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js diff --git a/htdocs/includes/ckeditor/_source/plugins/tabletools/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/tabletools/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/dialogs/templates.css b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.css similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/dialogs/templates.css rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.css diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/dialogs/templates.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/dialogs/templates.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/icons/hidpi/templates-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/hidpi/templates-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/icons/hidpi/templates-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/hidpi/templates-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/icons/hidpi/templates.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/hidpi/templates.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/icons/hidpi/templates.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/hidpi/templates.png diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/icons/templates-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/templates-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/icons/templates-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/templates-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/icons/templates.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/templates.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/icons/templates.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/icons/templates.png diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/templates/default.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/default.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/templates/default.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/default.js diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template1.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template1.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template1.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template1.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template2.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template2.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template2.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template2.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template3.gif b/htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template3.gif similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/templates/templates/images/template3.gif rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/templates/templates/images/template3.gif diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/toolbar/samples/toolbar.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/samples/toolbar.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/toolbar/samples/toolbar.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/toolbar/samples/toolbar.html diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/redo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/redo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/redo.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/redo.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/redo.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/undo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/undo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/undo.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/hidpi/undo.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/hidpi/undo.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/redo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/redo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/redo.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/redo.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/redo.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/undo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/undo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/icons/undo.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/icons/undo.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/icons/undo.png diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/id.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/id.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/si.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/si.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sq.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/undo/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/undo/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/undo/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/LICENSE.md diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/README.md b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/README.md similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/README.md rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/README.md diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/ciframe.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/ciframe.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/tmp.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmp.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/tmp.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmp.html diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc.css b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc.css rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc_ie.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc_ie.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/dialogs/wsc_ie.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc_ie.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/icons/hidpi/spellchecker.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/hidpi/spellchecker.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/icons/hidpi/spellchecker.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/hidpi/spellchecker.png diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/icons/spellchecker.png b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/spellchecker.png similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/icons/spellchecker.png rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/icons/spellchecker.png diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/af.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/af.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ar.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bg.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/bs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cs.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/cy.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/da.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/da.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/de.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/de.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/el.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/el.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-au.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/en.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/en.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/es.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/es.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/et.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/et.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/eu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fa.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fo.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/fr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/gu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/he.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/he.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/hu.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/is.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/is.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/it.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/it.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ja.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ka.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/km.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/km.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ko.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ku.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/lv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/mn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ms.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nb.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/nl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/no.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/no.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/pt.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ro.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ru.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sl.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/sv.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/th.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/th.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/tr.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/ug.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/uk.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/vi.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/lang/zh.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wsc/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wsc/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wysiwygarea/plugin.js b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wysiwygarea/plugin.js rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js diff --git a/htdocs/includes/ckeditor/_source/plugins/wysiwygarea/samples/fullpage.html b/htdocs/includes/ckeditor/ckeditor/_source/plugins/wysiwygarea/samples/fullpage.html similarity index 100% rename from htdocs/includes/ckeditor/_source/plugins/wysiwygarea/samples/fullpage.html rename to htdocs/includes/ckeditor/ckeditor/_source/plugins/wysiwygarea/samples/fullpage.html diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/colorpanel.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/colorpanel.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/colorpanel.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/colorpanel.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie7.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie7.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie7.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie7.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie8.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie8.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_ie8.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_ie8.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_iequirks.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_iequirks.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_iequirks.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_iequirks.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_opera.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_opera.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/dialog_opera.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/dialog_opera.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor_gecko.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_gecko.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor_gecko.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_gecko.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie7.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie7.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie7.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie7.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie8.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie8.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor_ie8.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_ie8.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/editor_iequirks.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_iequirks.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/editor_iequirks.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/editor_iequirks.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/elementspath.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/elementspath.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/elementspath.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/elementspath.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/about.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/about.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/about.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/about.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/anchor-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/anchor-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/anchor.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/anchor.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/anchor.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bgcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bgcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bgcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bgcolor.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bidiltr.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidiltr.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bidiltr.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidiltr.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bidirtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidirtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bidirtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bidirtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/blockquote.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/blockquote.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/blockquote.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/blockquote.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bold.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bold.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bold.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bold.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bulletedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bulletedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bulletedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/bulletedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/bulletedlist.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/button.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/button.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/button.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/button.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/checkbox.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/checkbox.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/checkbox.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/checkbox.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/copy-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/copy-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/copy.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/copy.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/copy.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/creatediv.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/creatediv.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/creatediv.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/creatediv.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/cut-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/cut-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/cut.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/cut.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/cut.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/find-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/find-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/find.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/find.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/find.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/flash.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/flash.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/flash.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/flash.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/form.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/form.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/form.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/form.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/hiddenfield.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/hiddenfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/hiddenfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/hiddenfield.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/horizontalrule.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/horizontalrule.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/horizontalrule.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/horizontalrule.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/iframe.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/iframe.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/iframe.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/iframe.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/image.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/image.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/image.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/image.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/imagebutton.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/imagebutton.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/imagebutton.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/imagebutton.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/indent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/indent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/indent.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/indent.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/indent.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/italic.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/italic.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/italic.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/italic.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyblock.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyblock.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyblock.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyblock.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifycenter.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifycenter.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifycenter.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifycenter.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyleft.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyleft.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyleft.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyleft.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyright.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyright.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/justifyright.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/justifyright.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/link.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/link.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/link.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/link.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/maximize.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/maximize.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/maximize.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/maximize.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/newpage-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/newpage-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/newpage.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/newpage.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/newpage.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/numberedlist-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/numberedlist-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/numberedlist.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/numberedlist.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/numberedlist.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/outdent-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/outdent-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/outdent.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/outdent.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/outdent.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pagebreak-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pagebreak-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pagebreak.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pagebreak.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pagebreak.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/paste-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/paste-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/paste.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/paste.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/paste.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastefromword-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastefromword-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastefromword.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastefromword.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastefromword.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastetext-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastetext-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastetext.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/pastetext.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/pastetext.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/preview-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/preview-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/preview.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/preview.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/preview.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/print.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/print.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/print.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/print.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/radio.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/radio.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/radio.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/radio.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/redo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/redo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/redo.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/redo.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/redo.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/removeformat.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/removeformat.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/removeformat.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/removeformat.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/replace.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/replace.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/replace.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/replace.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/save.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/save.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/save.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/save.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/scayt.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/scayt.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/scayt.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/scayt.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/select-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/select-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/select.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/select.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/select.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/selectall.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/selectall.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/selectall.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/selectall.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/showblocks-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/showblocks-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/showblocks.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/showblocks.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/showblocks.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/smiley.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/smiley.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/smiley.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/smiley.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/source-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/source-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/source.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/source.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/source.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/specialchar.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/specialchar.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/specialchar.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/specialchar.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/spellchecker.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/spellchecker.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/spellchecker.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/spellchecker.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/strike.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/strike.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/strike.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/strike.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/subscript.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/subscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/subscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/subscript.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/superscript.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/superscript.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/superscript.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/superscript.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/table.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/table.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/table.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/table.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/templates-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/templates-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/templates.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/templates.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/templates.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textarea-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textarea-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textarea.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textarea.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textarea.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textcolor.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textcolor.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textcolor.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textcolor.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textfield-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textfield-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textfield.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/textfield.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/textfield.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/underline.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/underline.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/underline.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/underline.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/undo-rtl.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo-rtl.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/undo-rtl.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo-rtl.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/undo.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/undo.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/undo.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/icons/unlink.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/unlink.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/icons/unlink.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/icons/unlink.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/arrow.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/arrow.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/arrow.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/arrow.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/close.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/close.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/close.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/close.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/close.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/close.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/close.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/close.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/lock-open.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock-open.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/lock-open.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock-open.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/lock.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/lock.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/lock.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/refresh.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/refresh.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/hidpi/refresh.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/hidpi/refresh.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/lock-open.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock-open.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/lock-open.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock-open.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/lock.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/lock.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/lock.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/images/refresh.png b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/refresh.png similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/images/refresh.png rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/images/refresh.png diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/mainui.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/mainui.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/mainui.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/mainui.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/menu.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/menu.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/menu.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/menu.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/panel.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/panel.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/panel.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/panel.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/presets.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/presets.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/presets.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/presets.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/readme.md b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/readme.md similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/readme.md rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/readme.md diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/reset.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/reset.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/reset.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/reset.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/richcombo.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/richcombo.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/richcombo.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/richcombo.css diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/skin.js b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/skin.js similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/skin.js rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/skin.js diff --git a/htdocs/includes/ckeditor/_source/skins/moonocolor/toolbar.css b/htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/toolbar.css similarity index 100% rename from htdocs/includes/ckeditor/_source/skins/moonocolor/toolbar.css rename to htdocs/includes/ckeditor/ckeditor/_source/skins/moonocolor/toolbar.css diff --git a/htdocs/includes/ckeditor/_source/styles.js b/htdocs/includes/ckeditor/ckeditor/_source/styles.js similarity index 100% rename from htdocs/includes/ckeditor/_source/styles.js rename to htdocs/includes/ckeditor/ckeditor/_source/styles.js diff --git a/htdocs/includes/ckeditor/adapters/jquery.js b/htdocs/includes/ckeditor/ckeditor/adapters/jquery.js similarity index 100% rename from htdocs/includes/ckeditor/adapters/jquery.js rename to htdocs/includes/ckeditor/ckeditor/adapters/jquery.js diff --git a/htdocs/includes/ckeditor/build-config.js b/htdocs/includes/ckeditor/ckeditor/build-config.js similarity index 100% rename from htdocs/includes/ckeditor/build-config.js rename to htdocs/includes/ckeditor/ckeditor/build-config.js diff --git a/htdocs/includes/ckeditor/ckeditor.js b/htdocs/includes/ckeditor/ckeditor/ckeditor.js similarity index 100% rename from htdocs/includes/ckeditor/ckeditor.js rename to htdocs/includes/ckeditor/ckeditor/ckeditor.js diff --git a/htdocs/includes/ckeditor/config.js b/htdocs/includes/ckeditor/ckeditor/config.js similarity index 100% rename from htdocs/includes/ckeditor/config.js rename to htdocs/includes/ckeditor/ckeditor/config.js diff --git a/htdocs/includes/ckeditor/contents.css b/htdocs/includes/ckeditor/ckeditor/contents.css similarity index 100% rename from htdocs/includes/ckeditor/contents.css rename to htdocs/includes/ckeditor/ckeditor/contents.css diff --git a/htdocs/includes/ckeditor/lang/af.js b/htdocs/includes/ckeditor/ckeditor/lang/af.js similarity index 100% rename from htdocs/includes/ckeditor/lang/af.js rename to htdocs/includes/ckeditor/ckeditor/lang/af.js diff --git a/htdocs/includes/ckeditor/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/lang/ar.js diff --git a/htdocs/includes/ckeditor/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/lang/bg.js diff --git a/htdocs/includes/ckeditor/lang/bn.js b/htdocs/includes/ckeditor/ckeditor/lang/bn.js similarity index 100% rename from htdocs/includes/ckeditor/lang/bn.js rename to htdocs/includes/ckeditor/ckeditor/lang/bn.js diff --git a/htdocs/includes/ckeditor/lang/bs.js b/htdocs/includes/ckeditor/ckeditor/lang/bs.js similarity index 100% rename from htdocs/includes/ckeditor/lang/bs.js rename to htdocs/includes/ckeditor/ckeditor/lang/bs.js diff --git a/htdocs/includes/ckeditor/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/lang/ca.js diff --git a/htdocs/includes/ckeditor/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/lang/cs.js diff --git a/htdocs/includes/ckeditor/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/lang/cy.js diff --git a/htdocs/includes/ckeditor/lang/da.js b/htdocs/includes/ckeditor/ckeditor/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/lang/da.js diff --git a/htdocs/includes/ckeditor/lang/de.js b/htdocs/includes/ckeditor/ckeditor/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/lang/de.js diff --git a/htdocs/includes/ckeditor/lang/el.js b/htdocs/includes/ckeditor/ckeditor/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/lang/el.js diff --git a/htdocs/includes/ckeditor/lang/en-au.js b/htdocs/includes/ckeditor/ckeditor/lang/en-au.js similarity index 100% rename from htdocs/includes/ckeditor/lang/en-au.js rename to htdocs/includes/ckeditor/ckeditor/lang/en-au.js diff --git a/htdocs/includes/ckeditor/lang/en-ca.js b/htdocs/includes/ckeditor/ckeditor/lang/en-ca.js similarity index 100% rename from htdocs/includes/ckeditor/lang/en-ca.js rename to htdocs/includes/ckeditor/ckeditor/lang/en-ca.js diff --git a/htdocs/includes/ckeditor/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/lang/en.js b/htdocs/includes/ckeditor/ckeditor/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/lang/en.js diff --git a/htdocs/includes/ckeditor/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/lang/eo.js diff --git a/htdocs/includes/ckeditor/lang/es.js b/htdocs/includes/ckeditor/ckeditor/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/lang/es.js diff --git a/htdocs/includes/ckeditor/lang/et.js b/htdocs/includes/ckeditor/ckeditor/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/lang/et.js diff --git a/htdocs/includes/ckeditor/lang/eu.js b/htdocs/includes/ckeditor/ckeditor/lang/eu.js similarity index 100% rename from htdocs/includes/ckeditor/lang/eu.js rename to htdocs/includes/ckeditor/ckeditor/lang/eu.js diff --git a/htdocs/includes/ckeditor/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/lang/fa.js diff --git a/htdocs/includes/ckeditor/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/lang/fi.js diff --git a/htdocs/includes/ckeditor/lang/fo.js b/htdocs/includes/ckeditor/ckeditor/lang/fo.js similarity index 100% rename from htdocs/includes/ckeditor/lang/fo.js rename to htdocs/includes/ckeditor/ckeditor/lang/fo.js diff --git a/htdocs/includes/ckeditor/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/lang/fr.js diff --git a/htdocs/includes/ckeditor/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/lang/gl.js diff --git a/htdocs/includes/ckeditor/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/lang/gu.js diff --git a/htdocs/includes/ckeditor/lang/he.js b/htdocs/includes/ckeditor/ckeditor/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/lang/he.js diff --git a/htdocs/includes/ckeditor/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/lang/hi.js diff --git a/htdocs/includes/ckeditor/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/lang/hr.js diff --git a/htdocs/includes/ckeditor/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/lang/hu.js diff --git a/htdocs/includes/ckeditor/lang/id.js b/htdocs/includes/ckeditor/ckeditor/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/lang/id.js diff --git a/htdocs/includes/ckeditor/lang/is.js b/htdocs/includes/ckeditor/ckeditor/lang/is.js similarity index 100% rename from htdocs/includes/ckeditor/lang/is.js rename to htdocs/includes/ckeditor/ckeditor/lang/is.js diff --git a/htdocs/includes/ckeditor/lang/it.js b/htdocs/includes/ckeditor/ckeditor/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/lang/it.js diff --git a/htdocs/includes/ckeditor/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/lang/ja.js diff --git a/htdocs/includes/ckeditor/lang/ka.js b/htdocs/includes/ckeditor/ckeditor/lang/ka.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ka.js rename to htdocs/includes/ckeditor/ckeditor/lang/ka.js diff --git a/htdocs/includes/ckeditor/lang/km.js b/htdocs/includes/ckeditor/ckeditor/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/lang/km.js diff --git a/htdocs/includes/ckeditor/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/lang/ko.js diff --git a/htdocs/includes/ckeditor/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/lang/ku.js diff --git a/htdocs/includes/ckeditor/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/lang/lt.js diff --git a/htdocs/includes/ckeditor/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/lang/lv.js diff --git a/htdocs/includes/ckeditor/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/lang/mk.js diff --git a/htdocs/includes/ckeditor/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/lang/mn.js diff --git a/htdocs/includes/ckeditor/lang/ms.js b/htdocs/includes/ckeditor/ckeditor/lang/ms.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ms.js rename to htdocs/includes/ckeditor/ckeditor/lang/ms.js diff --git a/htdocs/includes/ckeditor/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/lang/nb.js diff --git a/htdocs/includes/ckeditor/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/lang/nl.js diff --git a/htdocs/includes/ckeditor/lang/no.js b/htdocs/includes/ckeditor/ckeditor/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/lang/no.js diff --git a/htdocs/includes/ckeditor/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/lang/pl.js diff --git a/htdocs/includes/ckeditor/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/lang/pt.js diff --git a/htdocs/includes/ckeditor/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/lang/ro.js diff --git a/htdocs/includes/ckeditor/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/lang/ru.js diff --git a/htdocs/includes/ckeditor/lang/si.js b/htdocs/includes/ckeditor/ckeditor/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/lang/si.js diff --git a/htdocs/includes/ckeditor/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/lang/sk.js diff --git a/htdocs/includes/ckeditor/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/lang/sl.js diff --git a/htdocs/includes/ckeditor/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/lang/sq.js diff --git a/htdocs/includes/ckeditor/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/lang/sr.js diff --git a/htdocs/includes/ckeditor/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/lang/sv.js diff --git a/htdocs/includes/ckeditor/lang/th.js b/htdocs/includes/ckeditor/ckeditor/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/lang/th.js diff --git a/htdocs/includes/ckeditor/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/lang/tr.js diff --git a/htdocs/includes/ckeditor/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/lang/ug.js diff --git a/htdocs/includes/ckeditor/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/lang/uk.js diff --git a/htdocs/includes/ckeditor/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/lang/vi.js diff --git a/htdocs/includes/ckeditor/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/lang/zh.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/da.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/da.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/da.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/da.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/de.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/el.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/el.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/en.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/es.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/et.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/et.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/he.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/he.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/id.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/id.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/it.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/it.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/km.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/km.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/no.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/no.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/si.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/si.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/th.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/th.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js diff --git a/htdocs/includes/ckeditor/plugins/about/dialogs/about.js b/htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/about.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/about/dialogs/about.js rename to htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/about.js diff --git a/htdocs/includes/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png b/htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png rename to htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png diff --git a/htdocs/includes/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/logo_ckeditor.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/about/dialogs/logo_ckeditor.png rename to htdocs/includes/ckeditor/ckeditor/plugins/about/dialogs/logo_ckeditor.png diff --git a/htdocs/includes/ckeditor/plugins/clipboard/dialogs/paste.js b/htdocs/includes/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/clipboard/dialogs/paste.js rename to htdocs/includes/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js diff --git a/htdocs/includes/ckeditor/plugins/colordialog/dialogs/colordialog.js b/htdocs/includes/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/colordialog/dialogs/colordialog.js rename to htdocs/includes/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js diff --git a/htdocs/includes/ckeditor/plugins/dialog/dialogDefinition.js b/htdocs/includes/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/dialog/dialogDefinition.js rename to htdocs/includes/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js diff --git a/htdocs/includes/ckeditor/plugins/div/dialogs/div.js b/htdocs/includes/ckeditor/ckeditor/plugins/div/dialogs/div.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/div/dialogs/div.js rename to htdocs/includes/ckeditor/ckeditor/plugins/div/dialogs/div.js diff --git a/htdocs/includes/ckeditor/plugins/fakeobjects/images/spacer.gif b/htdocs/includes/ckeditor/ckeditor/plugins/fakeobjects/images/spacer.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/fakeobjects/images/spacer.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/fakeobjects/images/spacer.gif diff --git a/htdocs/includes/ckeditor/plugins/find/dialogs/find.js b/htdocs/includes/ckeditor/ckeditor/plugins/find/dialogs/find.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/find/dialogs/find.js rename to htdocs/includes/ckeditor/ckeditor/plugins/find/dialogs/find.js diff --git a/htdocs/includes/ckeditor/plugins/flash/dialogs/flash.js b/htdocs/includes/ckeditor/ckeditor/plugins/flash/dialogs/flash.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/flash/dialogs/flash.js rename to htdocs/includes/ckeditor/ckeditor/plugins/flash/dialogs/flash.js diff --git a/htdocs/includes/ckeditor/plugins/flash/images/placeholder.png b/htdocs/includes/ckeditor/ckeditor/plugins/flash/images/placeholder.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/flash/images/placeholder.png rename to htdocs/includes/ckeditor/ckeditor/plugins/flash/images/placeholder.png diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/button.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/button.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/button.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/button.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/checkbox.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/checkbox.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/form.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/form.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/form.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/form.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/hiddenfield.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/hiddenfield.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/radio.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/radio.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/radio.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/select.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/select.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/select.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/textarea.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/textarea.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js diff --git a/htdocs/includes/ckeditor/plugins/forms/dialogs/textfield.js b/htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/dialogs/textfield.js rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js diff --git a/htdocs/includes/ckeditor/plugins/forms/images/hiddenfield.gif b/htdocs/includes/ckeditor/ckeditor/plugins/forms/images/hiddenfield.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/forms/images/hiddenfield.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/forms/images/hiddenfield.gif diff --git a/htdocs/includes/ckeditor/plugins/icons.png b/htdocs/includes/ckeditor/ckeditor/plugins/icons.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/icons.png rename to htdocs/includes/ckeditor/ckeditor/plugins/icons.png diff --git a/htdocs/includes/ckeditor/plugins/icons_hidpi.png b/htdocs/includes/ckeditor/ckeditor/plugins/icons_hidpi.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/icons_hidpi.png rename to htdocs/includes/ckeditor/ckeditor/plugins/icons_hidpi.png diff --git a/htdocs/includes/ckeditor/plugins/iframe/dialogs/iframe.js b/htdocs/includes/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/iframe/dialogs/iframe.js rename to htdocs/includes/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js diff --git a/htdocs/includes/ckeditor/plugins/iframe/images/placeholder.png b/htdocs/includes/ckeditor/ckeditor/plugins/iframe/images/placeholder.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/iframe/images/placeholder.png rename to htdocs/includes/ckeditor/ckeditor/plugins/iframe/images/placeholder.png diff --git a/htdocs/includes/ckeditor/plugins/image/dialogs/image.js b/htdocs/includes/ckeditor/ckeditor/plugins/image/dialogs/image.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/image/dialogs/image.js rename to htdocs/includes/ckeditor/ckeditor/plugins/image/dialogs/image.js diff --git a/htdocs/includes/ckeditor/plugins/image/images/noimage.png b/htdocs/includes/ckeditor/ckeditor/plugins/image/images/noimage.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/image/images/noimage.png rename to htdocs/includes/ckeditor/ckeditor/plugins/image/images/noimage.png diff --git a/htdocs/includes/ckeditor/plugins/link/dialogs/anchor.js b/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/anchor.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/link/dialogs/anchor.js rename to htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/anchor.js diff --git a/htdocs/includes/ckeditor/plugins/link/dialogs/link.js b/htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/link/dialogs/link.js rename to htdocs/includes/ckeditor/ckeditor/plugins/link/dialogs/link.js diff --git a/htdocs/includes/ckeditor/plugins/link/images/anchor.png b/htdocs/includes/ckeditor/ckeditor/plugins/link/images/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/link/images/anchor.png rename to htdocs/includes/ckeditor/ckeditor/plugins/link/images/anchor.png diff --git a/htdocs/includes/ckeditor/plugins/link/images/hidpi/anchor.png b/htdocs/includes/ckeditor/ckeditor/plugins/link/images/hidpi/anchor.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/link/images/hidpi/anchor.png rename to htdocs/includes/ckeditor/ckeditor/plugins/link/images/hidpi/anchor.png diff --git a/htdocs/includes/ckeditor/plugins/liststyle/dialogs/liststyle.js b/htdocs/includes/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/liststyle/dialogs/liststyle.js rename to htdocs/includes/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js diff --git a/htdocs/includes/ckeditor/plugins/magicline/images/hidpi/icon.png b/htdocs/includes/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/magicline/images/hidpi/icon.png rename to htdocs/includes/ckeditor/ckeditor/plugins/magicline/images/hidpi/icon.png diff --git a/htdocs/includes/ckeditor/plugins/magicline/images/icon.png b/htdocs/includes/ckeditor/ckeditor/plugins/magicline/images/icon.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/magicline/images/icon.png rename to htdocs/includes/ckeditor/ckeditor/plugins/magicline/images/icon.png diff --git a/htdocs/includes/ckeditor/plugins/pagebreak/images/pagebreak.gif b/htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/images/pagebreak.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/pagebreak/images/pagebreak.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/pagebreak/images/pagebreak.gif diff --git a/htdocs/includes/ckeditor/plugins/pastefromword/filter/default.js b/htdocs/includes/ckeditor/ckeditor/plugins/pastefromword/filter/default.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/pastefromword/filter/default.js rename to htdocs/includes/ckeditor/ckeditor/plugins/pastefromword/filter/default.js diff --git a/htdocs/includes/ckeditor/plugins/preview/preview.html b/htdocs/includes/ckeditor/ckeditor/plugins/preview/preview.html similarity index 100% rename from htdocs/includes/ckeditor/plugins/preview/preview.html rename to htdocs/includes/ckeditor/ckeditor/plugins/preview/preview.html diff --git a/htdocs/includes/ckeditor/plugins/scayt/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/plugins/scayt/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md diff --git a/htdocs/includes/ckeditor/plugins/scayt/README.md b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md similarity index 100% rename from htdocs/includes/ckeditor/plugins/scayt/README.md rename to htdocs/includes/ckeditor/ckeditor/plugins/scayt/README.md diff --git a/htdocs/includes/ckeditor/plugins/scayt/dialogs/options.js b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/dialogs/options.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/scayt/dialogs/options.js rename to htdocs/includes/ckeditor/ckeditor/plugins/scayt/dialogs/options.js diff --git a/htdocs/includes/ckeditor/plugins/scayt/dialogs/toolbar.css b/htdocs/includes/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css similarity index 100% rename from htdocs/includes/ckeditor/plugins/scayt/dialogs/toolbar.css rename to htdocs/includes/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_address.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_address.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_address.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_address.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_blockquote.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_blockquote.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_blockquote.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_blockquote.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_div.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_div.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_div.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_div.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h1.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h1.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h1.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h1.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h2.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h2.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h2.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h2.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h3.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h3.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h3.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h3.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h4.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h4.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h4.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h4.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h5.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h5.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h5.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h5.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_h6.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h6.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_h6.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_h6.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_p.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_p.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_p.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_p.png diff --git a/htdocs/includes/ckeditor/plugins/showblocks/images/block_pre.png b/htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_pre.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/showblocks/images/block_pre.png rename to htdocs/includes/ckeditor/ckeditor/plugins/showblocks/images/block_pre.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/dialogs/smiley.js b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/dialogs/smiley.js rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/angel_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angel_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/angel_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angel_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/angel_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angel_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/angel_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angel_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/angry_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angry_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/angry_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angry_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/angry_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angry_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/angry_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/angry_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/broken_heart.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/broken_heart.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/broken_heart.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/broken_heart.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/broken_heart.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/broken_heart.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/broken_heart.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/broken_heart.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/confused_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/confused_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/confused_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/confused_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/confused_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/confused_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/confused_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/confused_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/cry_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/cry_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/cry_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/cry_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/cry_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/cry_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/cry_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/cry_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/devil_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/devil_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/devil_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/devil_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/devil_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/devil_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/devil_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/devil_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/embaressed_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embaressed_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/embaressed_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embaressed_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/embarrassed_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/embarrassed_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/embarrassed_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/embarrassed_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/envelope.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/envelope.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/envelope.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/envelope.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/envelope.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/envelope.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/envelope.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/envelope.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/heart.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/heart.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/heart.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/heart.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/heart.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/heart.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/heart.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/heart.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/kiss.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/kiss.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/kiss.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/kiss.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/kiss.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/kiss.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/kiss.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/kiss.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/lightbulb.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/lightbulb.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/lightbulb.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/lightbulb.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/lightbulb.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/lightbulb.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/lightbulb.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/lightbulb.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/omg_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/omg_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/omg_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/omg_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/omg_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/omg_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/omg_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/omg_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/regular_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/regular_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/regular_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/regular_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/regular_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/regular_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/regular_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/regular_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/sad_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/sad_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/sad_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/sad_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/sad_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/sad_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/sad_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/sad_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/shades_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/shades_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/shades_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/shades_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/shades_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/shades_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/shades_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/shades_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/teeth_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/teeth_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/teeth_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/teeth_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/thumbs_down.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/thumbs_down.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/thumbs_down.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/thumbs_down.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/thumbs_up.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/thumbs_up.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/thumbs_up.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/thumbs_up.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/tongue_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/tongue_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/tongue_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/tongue_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tongue_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/tounge_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tounge_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/tounge_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/tounge_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/wink_smile.gif b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/wink_smile.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/wink_smile.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/wink_smile.gif diff --git a/htdocs/includes/ckeditor/plugins/smiley/images/wink_smile.png b/htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/wink_smile.png similarity index 100% rename from htdocs/includes/ckeditor/plugins/smiley/images/wink_smile.png rename to htdocs/includes/ckeditor/ckeditor/plugins/smiley/images/wink_smile.png diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ar.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/bg.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ca.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/cs.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/cy.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/de.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/de.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/el.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/el.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/en.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/en.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/eo.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/es.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/es.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/et.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/et.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fa.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fi.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/fr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/gl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/he.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/he.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/hr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/hu.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/id.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/id.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/it.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/it.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ja.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/km.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/km.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ku.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/lv.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/nb.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/nl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/no.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/no.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/pt.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ru.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/si.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/si.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sk.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sl.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sq.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/sv.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/th.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/th.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/tr.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/ug.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/uk.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/vi.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/lang/zh.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js diff --git a/htdocs/includes/ckeditor/plugins/specialchar/dialogs/specialchar.js b/htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/specialchar/dialogs/specialchar.js rename to htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js diff --git a/htdocs/includes/ckeditor/plugins/table/dialogs/table.js b/htdocs/includes/ckeditor/ckeditor/plugins/table/dialogs/table.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/table/dialogs/table.js rename to htdocs/includes/ckeditor/ckeditor/plugins/table/dialogs/table.js diff --git a/htdocs/includes/ckeditor/plugins/tabletools/dialogs/tableCell.js b/htdocs/includes/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/tabletools/dialogs/tableCell.js rename to htdocs/includes/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js diff --git a/htdocs/includes/ckeditor/plugins/templates/dialogs/templates.css b/htdocs/includes/ckeditor/ckeditor/plugins/templates/dialogs/templates.css similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/dialogs/templates.css rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/dialogs/templates.css diff --git a/htdocs/includes/ckeditor/plugins/templates/dialogs/templates.js b/htdocs/includes/ckeditor/ckeditor/plugins/templates/dialogs/templates.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/dialogs/templates.js rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/dialogs/templates.js diff --git a/htdocs/includes/ckeditor/plugins/templates/templates/default.js b/htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/default.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/templates/default.js rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/default.js diff --git a/htdocs/includes/ckeditor/plugins/templates/templates/images/template1.gif b/htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template1.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/templates/images/template1.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template1.gif diff --git a/htdocs/includes/ckeditor/plugins/templates/templates/images/template2.gif b/htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template2.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/templates/images/template2.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template2.gif diff --git a/htdocs/includes/ckeditor/plugins/templates/templates/images/template3.gif b/htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template3.gif similarity index 100% rename from htdocs/includes/ckeditor/plugins/templates/templates/images/template3.gif rename to htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/images/template3.gif diff --git a/htdocs/includes/ckeditor/plugins/wsc/LICENSE.md b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/LICENSE.md similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/LICENSE.md rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/LICENSE.md diff --git a/htdocs/includes/ckeditor/plugins/wsc/README.md b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/README.md similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/README.md rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/README.md diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/ciframe.html b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/ciframe.html rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/tmp.html b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/tmp.html rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/tmpFrameset.html rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc.css b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc.css rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc.js b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc.js rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js diff --git a/htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc_ie.js b/htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js similarity index 100% rename from htdocs/includes/ckeditor/plugins/wsc/dialogs/wsc_ie.js rename to htdocs/includes/ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js diff --git a/htdocs/includes/ckeditor/skins/moono/dialog.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog.css diff --git a/htdocs/includes/ckeditor/skins/moono/dialog_ie.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog_ie.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie.css diff --git a/htdocs/includes/ckeditor/skins/moono/dialog_ie7.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie7.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog_ie7.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie7.css diff --git a/htdocs/includes/ckeditor/skins/moono/dialog_ie8.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie8.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog_ie8.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_ie8.css diff --git a/htdocs/includes/ckeditor/skins/moono/dialog_iequirks.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_iequirks.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog_iequirks.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_iequirks.css diff --git a/htdocs/includes/ckeditor/skins/moono/dialog_opera.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_opera.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/dialog_opera.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/dialog_opera.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor_gecko.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor_gecko.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor_gecko.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor_gecko.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor_ie.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor_ie.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor_ie7.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie7.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor_ie7.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie7.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor_ie8.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie8.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor_ie8.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor_ie8.css diff --git a/htdocs/includes/ckeditor/skins/moono/editor_iequirks.css b/htdocs/includes/ckeditor/ckeditor/skins/moono/editor_iequirks.css similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/editor_iequirks.css rename to htdocs/includes/ckeditor/ckeditor/skins/moono/editor_iequirks.css diff --git a/htdocs/includes/ckeditor/skins/moono/icons.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/icons.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/icons.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/icons.png diff --git a/htdocs/includes/ckeditor/skins/moono/icons_hidpi.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/icons_hidpi.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/icons_hidpi.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/icons_hidpi.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/arrow.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/arrow.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/arrow.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/arrow.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/close.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/close.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/close.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/close.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/hidpi/close.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/close.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/hidpi/close.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/close.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/hidpi/lock-open.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/lock-open.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/hidpi/lock-open.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/lock-open.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/hidpi/lock.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/lock.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/hidpi/lock.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/lock.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/hidpi/refresh.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/refresh.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/hidpi/refresh.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/hidpi/refresh.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/lock-open.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/lock-open.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/lock-open.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/lock-open.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/lock.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/lock.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/lock.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/lock.png diff --git a/htdocs/includes/ckeditor/skins/moono/images/refresh.png b/htdocs/includes/ckeditor/ckeditor/skins/moono/images/refresh.png similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/images/refresh.png rename to htdocs/includes/ckeditor/ckeditor/skins/moono/images/refresh.png diff --git a/htdocs/includes/ckeditor/skins/moono/readme.md b/htdocs/includes/ckeditor/ckeditor/skins/moono/readme.md similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/readme.md rename to htdocs/includes/ckeditor/ckeditor/skins/moono/readme.md diff --git a/htdocs/includes/ckeditor/skins/moono/skin.js b/htdocs/includes/ckeditor/ckeditor/skins/moono/skin.js similarity index 100% rename from htdocs/includes/ckeditor/skins/moono/skin.js rename to htdocs/includes/ckeditor/ckeditor/skins/moono/skin.js diff --git a/htdocs/includes/ckeditor/styles.js b/htdocs/includes/ckeditor/ckeditor/styles.js similarity index 100% rename from htdocs/includes/ckeditor/styles.js rename to htdocs/includes/ckeditor/ckeditor/styles.js diff --git a/htdocs/includes/firephp/firephp-core/.gitignore b/htdocs/includes/firephp/firephp-core/.gitignore new file mode 100644 index 00000000000..d16386367f7 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/CHANGELOG.md b/htdocs/includes/firephp/firephp-core/CHANGELOG.md new file mode 100644 index 00000000000..d8b0f86df5b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/CHANGELOG.md @@ -0,0 +1,171 @@ + +TODO: + + * Fix code indenting in PHP 4 code + * Port maxDepth option to PHP 4 code + +2013-04-23 - Release Version: 0.4.0 + + * No changes + +2011-06-22 - Release Version: 0.4.0rc3 + + * Build fixes + +2011-06-20 - Release Version: 0.4.0rc1 + + * (Issue 163) PHP5 class_exists() throws Exception without second parameter + * (Issue 166) Non-utf8 array values replaced with null + * Cleaned up code formatting [sokolov.innokenty@gmail.com] + * Ensure JSON keys are never NULL (due to NULL key in some arrays) + * Better UTF-8 encoding detection + * Code style cleanup (qbbr) + * Changed license to MIT + * Refactored project + +2010-10-26 - Release Version: 0.3.2 + +2010-10-12 - Release Version: 0.3.2rc6 + + * (Issue 154) getRequestHeader uses "getallheaders" even though it doesn't always exist. [25m] + +2010-10-09 - Release Version: 0.3.2rc5 + + * (Issue 153) FirePHP incorrectly double-encodes UTF8 when mbstring.func_overload is enabled + +2010-10-08 - Release Version: 0.3.2rc4 + + * Trigger upgrade message if part of FirePHP 1.0 + * Removed FirePHP/Init.php inclusion logic and only load FirePHP.class.php if not already loaded + +2010-07-19 - Release Version: 0.3.2rc3 + + * Fixed FirePHP/Init.php inclusion logic + +2010-07-19 - Release Version: 0.3.2rc2 + + * (Issue 145) maxDepth option + * Changed maxObjectDepth and maxArrayDepth option defaults to 5 + * Fixed code indentation + +2010-03-05 - Release Version: 0.3.2rc1 + + * (Issue 114) Allow options to be passed on to basic logging wrappers + * (Issue 122) Filter objectStack property of FirePHP class + * (Issue 123) registerErrorHandler(false) by default + * Added setOption() and getOption() methods + * (Issue 117) dump() method argument validation + * Started adding PHPUnit tests + * Some refactoring to support unit testing + * Deprecated setProcessorUrl() and setRendererUrl() + * Check User-Agent and X-FirePHP-Version header to detect FirePHP on client + * (Issue 135) FirePHP 0.4.3 with Firebug 1.5 changes user agent on the fly + * (Issue 112) Error Predefined Constants Not available for PHP 5.x versions + +2008-06-14 - Release Version: 0.3.1 + + * (Issue 108) ignore class name case in object filter + +2009-05-11 - Release Version: 0.3 +2009-05-01 - Release Version: 0.3.rc.1 + + * (Issue 90) PHP4 compatible version of FirePHPCore + * (Issue 98) Thrown exceptions don't send an HTTP 500 if the FirePHP exception handler is enabled + * (Issue 85) Support associative arrays in encodeTable method in FirePHP.class.php + * (Issue 66) Add a new getOptions() public method in API + * (Issue 82) Define $this->options outside of __construct + * (Issue 72) Message error if group name is null + * (Issue 68) registerErrorHandler() and registerExceptionHandler() should returns previous handlers defined + * (Issue 69) Add the missing register handler in the triumvirate (error, exception, assert) + * (Issue 75) [Error & Exception Handling] Option to not exit script execution + * (Issue 83) Exception handler can't throw exceptions + * (Issue 80) Auto/Pre collapsing groups AND Custom group row colors + +2008-11-09 - Release Version: 0.2.1 + + * (Issue 70) Problem when logging resources + +2008-10-21 - Release Version: 0.2.0 + + * Updated version to 0.2.0 + * Switched to using __sleep instead of __wakeup + * Added support to exclude object members when encoding + * Add support to enable/disable logging + +2008-10-17 - Release Version: 0.2.b.8 + + * New implementation for is_utf8() + * (Issue 55) maxObjectDepth Option not working correctly when using TABLE and EXCEPTION Type + * Bugfix for max[Object|Array]Depth when encoding nested array/object graphs + * Bugfix for FB::setOptions() + +2008-10-16 - Release Version: 0.2.b.7 + + * (Issue 45) Truncate dump when string have non utf8 cars + * (Issue 52) logging will not work when firephp object gets stored in the session. + +2008-10-16 - Release Version: 0.2.b.6 + + * (Issue 37) Display file and line information for each log message + * (Issue 51) Limit output of object graphs + * Bugfix for encoding object members set to NULL|false|'' + +2008-10-14 - Release Version: 0.2.b.5 + + * Updated JsonStream wildfire protocol to be more robust + * (Issue 33) PHP error notices running demos + * (Issue 48) Warning: ReflectionProperty::getValue() expects exactly 1 parameter, 0 given + +2008-10-08 - Release Version: 0.2.b.4 + + * Bugfix for logging objects with recursion + +2008-10-08 - Release Version: 0.2.b.3 + + * (Issue 43) Notice message in 0.2b2 + * Added support for PHP's native json_encode() if available + * Revised object encoder to detect object recursion + +2008-10-07 - Release Version: 0.2.b.2 + + * (Issue 28) Need solution for logging private and protected object variables + * Added trace() and table() aliases in FirePHP class + * (Issue 41) Use PHP doc in FirePHP + * (Issue 39) Static logging method for object oriented API + +2008-10-01 - Release Version: 0.2.b.1 + + * Added support for error and exception handling + * Updated min PHP version for PEAR package to 5.2 + * Added version constant for library + * Gave server library it's own wildfire plugin namespace + * Migrated communication protocol to Wildfire JsonStream + * Added support for console groups using "group" and "groupEnd" + * Added support for log, info, warn and error logging aliases + * (Issue 29) problem with TRACE when using with error_handler + * (Issue 33) PHP error notices running demos + * (Issue 12) undefined index php notice + * Removed closing ?> php tags + * (Issue 13) the code in the fb() function has a second return statement that will never be reached + +2008-07-30 - Release Version: 0.1.1.3 + + * Include __className property in JSON string if variable was an object + * Bugfix - Mis-spelt "Exception" in JSON encoding code + +2008-06-13 - Release Version: 0.1.1.1 + + * Bugfix - Standardize windows paths in stack traces + * Bugfix - Display correct stack trace info in windows environments + * Bugfix - Check $_SERVER['HTTP_USER_AGENT'] before returning + +2008-06-13 - Release Version: 0.1.1 + + * Added support for FirePHP::TRACE log style + * Changed license to New BSD License + +2008-06-06 - Release Version: 0.0.2 + + * Bugfix - Added usleep() to header writing loop to ensure unique index + * Bugfix - Ensure chunk_split does not generate trailing "\n" with empty data header + * Added support for FirePHP::TABLE log style diff --git a/htdocs/includes/firephp/firephp-core/README.md b/htdocs/includes/firephp/firephp-core/README.md new file mode 100644 index 00000000000..b1b32f842ff --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/README.md @@ -0,0 +1,75 @@ +FirePHPCore +=========== + +**Status: stable** + +> **FirePHP is an advanced logging system that can display PHP variables in the browser as an application is navigated.** +> All communication is out of band to the application meaning that the logging data will not interfere with the normal functioning of the application. + +This project contains the *FirePHPCore* PHP server library and provides a development environment (see `./workspace/`) for working on *FirePHPCore*. + + +Usage +===== + +See [Install/Traditional: FirePHPCore](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/Configuration/Traditional) in the +[FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Testing +======= + + cd tests + phpunit . + + +Support & Feedback +================== + +See [Support](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#support) in the [FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Contribute +========== + +See [Contribute](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#contribute) in the [FirePHP 1.0 Documentation](http://docs.sourcemint.org/firephp.org/firephp/1/-docs/). + + +Author +====== + +This project is authored and maintained by [Christoph Dorn](http://www.christophdorn.com/). + + +Documentation License +===================== + +[Creative Commons Attribution-NonCommercial-ShareAlike 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + + +Code License +============ + +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/htdocs/includes/firephp/firephp-core/composer.json b/htdocs/includes/firephp/firephp-core/composer.json new file mode 100644 index 00000000000..7cab85a9f8b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/composer.json @@ -0,0 +1,26 @@ +{ + "name": "firephp/firephp-core", + "description": "Traditional FirePHPCore library for sending PHP variables to the browser.", + "type": "library", + "homepage": "https://github.com/firephp/firephp-core", + "license": "MIT", + "authors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "homepage": "http://christophdorn.com" + } + ], + "support": { + "forum": "http://groups.google.com/group/firephp-dev", + "issues": "https://github.com/firephp/firephp-core/issues", + "source": "https://github.com/firephp/firephp-core" + }, + "autoload": { + "classmap": [ + "lib/FirePHPCore/FirePHP.class.php", + "lib/FirePHPCore/fb.php" + ] + } +} + diff --git a/htdocs/includes/firephp/firephp-core/examples/oo.php b/htdocs/includes/firephp/firephp-core/examples/oo.php new file mode 100644 index 00000000000..f5f39875c94 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/oo.php @@ -0,0 +1,82 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/FirePHP.class.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + + +$firephp = FirePHP::getInstance(true); + + +$firephp->fb('Hello World'); /* Defaults to FirePHP::LOG */ + +$firephp->fb('Log message' ,FirePHP::LOG); +$firephp->fb('Info message' ,FirePHP::INFO); +$firephp->fb('Warn message' ,FirePHP::WARN); +$firephp->fb('Error message',FirePHP::ERROR); + +$firephp->fb('Message with label','Label',FirePHP::LOG); + +$firephp->fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP::LOG); + +function test($Arg1) { + throw new Exception('Test Exception'); +} +try { + test(array('Hello'=>'World')); +} catch(Exception $e) { + /* Log exception including stack trace & variables */ + $firephp->fb($e); +} + +$firephp->fb('Backtrace to here',FirePHP::TRACE); + +$firephp->fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP::TABLE); + +/* Will show only in "Server" tab for the request */ +$firephp->fb(apache_request_headers(),'RequestHeaders',FirePHP::DUMP); + + +print 'Hello World'; diff --git a/htdocs/includes/firephp/firephp-core/examples/oo.php4 b/htdocs/includes/firephp/firephp-core/examples/oo.php4 new file mode 100644 index 00000000000..75ec1ee3f9e --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/oo.php4 @@ -0,0 +1,72 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/FirePHP.class.php4'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + + +$firephp =& FirePHP::getInstance(true); + + +$firephp->fb('Hello World'); /* Defaults to FirePHP::LOG */ + +$firephp->fb('Log message' ,FirePHP_LOG); +$firephp->fb('Info message' ,FirePHP_INFO); +$firephp->fb('Warn message' ,FirePHP_WARN); +$firephp->fb('Error message',FirePHP_ERROR); + +$firephp->fb('Message with label','Label',FirePHP_LOG); + +$firephp->fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP_LOG); + +$firephp->fb('Backtrace to here',FirePHP_TRACE); + +$firephp->fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP_TABLE); + +/* Will show only in "Server" tab for the request */ +$firephp->fb(apache_request_headers(),'RequestHeaders',FirePHP_DUMP); + + +print 'Hello World'; diff --git a/htdocs/includes/firephp/firephp-core/examples/procedural.php b/htdocs/includes/firephp/firephp-core/examples/procedural.php new file mode 100644 index 00000000000..d1d3920bf4a --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/procedural.php @@ -0,0 +1,79 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/fb.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + +fb('Hello World'); /* Defaults to FirePHP::LOG */ + +fb('Log message' ,FirePHP::LOG); +fb('Info message' ,FirePHP::INFO); +fb('Warn message' ,FirePHP::WARN); +fb('Error message',FirePHP::ERROR); + +fb('Message with label','Label',FirePHP::LOG); + +fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP::LOG); + +function test($Arg1) { + throw new Exception('Test Exception'); +} +try { + test(array('Hello'=>'World')); +} catch(Exception $e) { + /* Log exception including stack trace & variables */ + fb($e); +} + +fb('Backtrace to here',FirePHP::TRACE); + +fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP::TABLE); + +/* Will show only in "Server" tab for the request */ +fb(apache_request_headers(),'RequestHeaders',FirePHP::DUMP); + + +print 'Hello World'; + diff --git a/htdocs/includes/firephp/firephp-core/examples/procedural.php4 b/htdocs/includes/firephp/firephp-core/examples/procedural.php4 new file mode 100644 index 00000000000..28eb7dc17e8 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/examples/procedural.php4 @@ -0,0 +1,69 @@ +, Copyright 2007, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** */ + + +/* NOTE: You must have the FirePHPCore library in your include path */ + +set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); + + +require('FirePHPCore/fb.php'); + +/* NOTE: You must have Output Buffering enabled via + ob_start() or output_buffering ini directive. */ + +fb('Hello World'); /* Defaults to FirePHP::LOG */ + +fb('Log message' ,FirePHP_LOG); +fb('Info message' ,FirePHP_INFO); +fb('Warn message' ,FirePHP_WARN); +fb('Error message',FirePHP_ERROR); + +fb('Message with label','Label',FirePHP_LOG); + +fb(array('key1'=>'val1', + 'key2'=>array(array('v1','v2'),'v3')), + 'TestArray',FirePHP_LOG); + +fb('Backtrace to here',FirePHP_TRACE); + +fb(array('2 SQL queries took 0.06 seconds',array( + array('SQL Statement','Time','Result'), + array('SELECT * FROM Foo','0.02',array('row1','row2')), + array('SELECT * FROM Bar','0.04',array('row1','row2')) + )),FirePHP_TABLE); + +/* Will show only in "Server" tab for the request */ +fb(apache_request_headers(),'RequestHeaders',FirePHP_DUMP); + + +print 'Hello World'; + diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php new file mode 100644 index 00000000000..65d83b56dca --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php @@ -0,0 +1,1828 @@ +, Copyright 2007, New BSD License +// - qbbr, Sokolov Innokenty , Copyright 2011, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +/** + * @see http://code.google.com/p/firephp/issues/detail?id=112 + */ +if (!defined('E_STRICT')) { + define('E_STRICT', 2048); +} +if (!defined('E_RECOVERABLE_ERROR')) { + define('E_RECOVERABLE_ERROR', 4096); +} +if (!defined('E_DEPRECATED')) { + define('E_DEPRECATED', 8192); +} +if (!defined('E_USER_DEPRECATED')) { + define('E_USER_DEPRECATED', 16384); +} + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * For more information see: http://www.firephp.org/ + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ +class FirePHP { + + /** + * FirePHP version + * + * @var string + */ + const VERSION = '0.3'; // @pinf replace '0.3' with '%%VERSION%%' + + /** + * Firebug LOG level + * + * Logs a message to firebug console. + * + * @var string + */ + const LOG = 'LOG'; + + /** + * Firebug INFO level + * + * Logs a message to firebug console and displays an info icon before the message. + * + * @var string + */ + const INFO = 'INFO'; + + /** + * Firebug WARN level + * + * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise. + * + * @var string + */ + const WARN = 'WARN'; + + /** + * Firebug ERROR level + * + * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count. + * + * @var string + */ + const ERROR = 'ERROR'; + + /** + * Dumps a variable to firebug's server panel + * + * @var string + */ + const DUMP = 'DUMP'; + + /** + * Displays a stack trace in firebug console + * + * @var string + */ + const TRACE = 'TRACE'; + + /** + * Displays an exception in firebug console + * + * Increments the firebug error count. + * + * @var string + */ + const EXCEPTION = 'EXCEPTION'; + + /** + * Displays an table in firebug console + * + * @var string + */ + const TABLE = 'TABLE'; + + /** + * Starts a group in firebug console + * + * @var string + */ + const GROUP_START = 'GROUP_START'; + + /** + * Ends a group in firebug console + * + * @var string + */ + const GROUP_END = 'GROUP_END'; + + /** + * Singleton instance of FirePHP + * + * @var FirePHP + */ + protected static $instance = null; + + /** + * Flag whether we are logging from within the exception handler + * + * @var boolean + */ + protected $inExceptionHandler = false; + + /** + * Flag whether to throw PHP errors that have been converted to ErrorExceptions + * + * @var boolean + */ + protected $throwErrorExceptions = true; + + /** + * Flag whether to convert PHP assertion errors to Exceptions + * + * @var boolean + */ + protected $convertAssertionErrorsToExceptions = true; + + /** + * Flag whether to throw PHP assertion errors that have been converted to Exceptions + * + * @var boolean + */ + protected $throwAssertionExceptions = false; + + /** + * Wildfire protocol message index + * + * @var integer + */ + protected $messageIndex = 1; + + /** + * Options for the library + * + * @var array + */ + protected $options = array('maxDepth' => 10, + 'maxObjectDepth' => 5, + 'maxArrayDepth' => 5, + 'useNativeJsonEncode' => true, + 'includeLineNumbers' => true); + + /** + * Filters used to exclude object members when encoding + * + * @var array + */ + protected $objectFilters = array( + 'firephp' => array('objectStack', 'instance', 'json_objectStack'), + 'firephp_test_class' => array('objectStack', 'instance', 'json_objectStack') + ); + + /** + * A stack of objects used to detect recursion during object encoding + * + * @var object + */ + protected $objectStack = array(); + + /** + * Flag to enable/disable logging + * + * @var boolean + */ + protected $enabled = true; + + /** + * The insight console to log to if applicable + * + * @var object + */ + protected $logToInsightConsole = null; + + /** + * When the object gets serialized only include specific object members. + * + * @return array + */ + public function __sleep() + { + return array('options', 'objectFilters', 'enabled'); + } + + /** + * Gets singleton instance of FirePHP + * + * @param boolean $autoCreate + * @return FirePHP + */ + public static function getInstance($autoCreate = false) + { + if ($autoCreate === true && !self::$instance) { + self::init(); + } + return self::$instance; + } + + /** + * Creates FirePHP object and stores it for singleton access + * + * @return FirePHP + */ + public static function init() + { + return self::setInstance(new self()); + } + + /** + * Set the instance of the FirePHP singleton + * + * @param FirePHP $instance The FirePHP object instance + * @return FirePHP + */ + public static function setInstance($instance) + { + return self::$instance = $instance; + } + + /** + * Set an Insight console to direct all logging calls to + * + * @param object $console The console object to log to + * @return void + */ + public function setLogToInsightConsole($console) + { + if (is_string($console)) { + if (get_class($this) != 'FirePHP_Insight' && !is_subclass_of($this, 'FirePHP_Insight')) { + throw new Exception('FirePHP instance not an instance or subclass of FirePHP_Insight!'); + } + $this->logToInsightConsole = $this->to('request')->console($console); + } else { + $this->logToInsightConsole = $console; + } + } + + /** + * Enable and disable logging to Firebug + * + * @param boolean $enabled TRUE to enable, FALSE to disable + * @return void + */ + public function setEnabled($enabled) + { + $this->enabled = $enabled; + } + + /** + * Check if logging is enabled + * + * @return boolean TRUE if enabled + */ + public function getEnabled() + { + return $this->enabled; + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @param string $class The class name of the object + * @param array $filter An array of members to exclude + * @return void + */ + public function setObjectFilter($class, $filter) + { + $this->objectFilters[strtolower($class)] = $filter; + } + + /** + * Set some options for the library + * + * Options: + * - maxDepth: The maximum depth to traverse (default: 10) + * - maxObjectDepth: The maximum depth to traverse objects (default: 5) + * - maxArrayDepth: The maximum depth to traverse arrays (default: 5) + * - useNativeJsonEncode: If true will use json_encode() (default: true) + * - includeLineNumbers: If true will include line numbers and filenames (default: true) + * + * @param array $options The options to be set + * @return void + */ + public function setOptions($options) + { + $this->options = array_merge($this->options, $options); + } + + /** + * Get options from the library + * + * @return array The currently set options + */ + public function getOptions() + { + return $this->options; + } + + /** + * Set an option for the library + * + * @param string $name + * @param mixed $value + * @return void + * @throws Exception + */ + public function setOption($name, $value) + { + if (!isset($this->options[$name])) { + throw $this->newException('Unknown option: ' . $name); + } + $this->options[$name] = $value; + } + + /** + * Get an option from the library + * + * @param string $name + * @return mixed + * @throws Exception + */ + public function getOption($name) + { + if (!isset($this->options[$name])) { + throw $this->newException('Unknown option: ' . $name); + } + return $this->options[$name]; + } + + /** + * Register FirePHP as your error handler + * + * Will throw exceptions for each php error. + * + * @return mixed Returns a string containing the previously defined error handler (if any) + */ + public function registerErrorHandler($throwErrorExceptions = false) + { + //NOTE: The following errors will not be caught by this error handler: + // E_ERROR, E_PARSE, E_CORE_ERROR, + // E_CORE_WARNING, E_COMPILE_ERROR, + // E_COMPILE_WARNING, E_STRICT + + $this->throwErrorExceptions = $throwErrorExceptions; + + return set_error_handler(array($this, 'errorHandler')); + } + + /** + * FirePHP's error handler + * + * Throws exception for each php error that will occur. + * + * @param integer $errno + * @param string $errstr + * @param string $errfile + * @param integer $errline + * @param array $errcontext + */ + public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) + { + // Don't throw exception if error reporting is switched off + if (error_reporting() == 0) { + return; + } + // Only throw exceptions for errors we are asking for + if (error_reporting() & $errno) { + + $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline); + if ($this->throwErrorExceptions) { + throw $exception; + } else { + $this->fb($exception); + } + } + } + + /** + * Register FirePHP as your exception handler + * + * @return mixed Returns the name of the previously defined exception handler, + * or NULL on error. + * If no previous handler was defined, NULL is also returned. + */ + public function registerExceptionHandler() + { + return set_exception_handler(array($this, 'exceptionHandler')); + } + + /** + * FirePHP's exception handler + * + * Logs all exceptions to your firebug console and then stops the script. + * + * @param Exception $exception + * @throws Exception + */ + function exceptionHandler($exception) + { + $this->inExceptionHandler = true; + + header('HTTP/1.1 500 Internal Server Error'); + + try { + $this->fb($exception); + } catch (Exception $e) { + echo 'We had an exception: ' . $e; + } + + $this->inExceptionHandler = false; + } + + /** + * Register FirePHP driver as your assert callback + * + * @param boolean $convertAssertionErrorsToExceptions + * @param boolean $throwAssertionExceptions + * @return mixed Returns the original setting or FALSE on errors + */ + public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false) + { + $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions; + $this->throwAssertionExceptions = $throwAssertionExceptions; + + if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) { + throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!'); + } + + return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler')); + } + + /** + * FirePHP's assertion handler + * + * Logs all assertions to your firebug console and then stops the script. + * + * @param string $file File source of assertion + * @param integer $line Line source of assertion + * @param mixed $code Assertion code + */ + public function assertionHandler($file, $line, $code) + { + if ($this->convertAssertionErrorsToExceptions) { + + $exception = new ErrorException('Assertion Failed - Code[ ' . $code . ' ]', 0, null, $file, $line); + + if ($this->throwAssertionExceptions) { + throw $exception; + } else { + $this->fb($exception); + } + + } else { + $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File' => $file, 'Line' => $line)); + } + } + + /** + * Start a group for following messages. + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $name + * @param array $options OPTIONAL Instructions on how to log the group + * @return true + * @throws Exception + */ + public function group($name, $options = null) + { + + if (!$name) { + throw $this->newException('You must specify a label for the group!'); + } + + if ($options) { + if (!is_array($options)) { + throw $this->newException('Options must be defined as an array!'); + } + if (array_key_exists('Collapsed', $options)) { + $options['Collapsed'] = ($options['Collapsed']) ? 'true' : 'false'; + } + } + + return $this->fb(null, $name, FirePHP::GROUP_START, $options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + public function groupEnd() + { + return $this->fb(null, null, FirePHP::GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function log($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::LOG, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function info($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::INFO, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function warn($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::WARN, $options); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public function error($object, $label = null, $options = array()) + { + return $this->fb($object, $label, FirePHP::ERROR, $options); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $key + * @param mixed $variable + * @return true + * @throws Exception + */ + public function dump($key, $variable, $options = array()) + { + if (!is_string($key)) { + throw $this->newException('Key passed to dump() is not a string'); + } + if (strlen($key) > 100) { + throw $this->newException('Key passed to dump() is longer than 100 characters'); + } + if (!preg_match_all('/^[a-zA-Z0-9-_\.:]*$/', $key, $m)) { + throw $this->newException('Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:]'); + } + return $this->fb($variable, $key, FirePHP::DUMP, $options); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $label + * @return true + * @throws Exception + */ + public function trace($label) + { + return $this->fb($label, FirePHP::TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $label + * @param string $table + * @return true + * @throws Exception + */ + public function table($label, $table, $options = array()) + { + return $this->fb($table, $label, FirePHP::TABLE, $options); + } + + /** + * Insight API wrapper + * + * @see Insight_Helper::to() + */ + public static function to() + { + $instance = self::getInstance(); + if (!method_exists($instance, '_to')) { + throw new Exception('FirePHP::to() implementation not loaded'); + } + $args = func_get_args(); + return call_user_func_array(array($instance, '_to'), $args); + } + + /** + * Insight API wrapper + * + * @see Insight_Helper::plugin() + */ + public static function plugin() + { + $instance = self::getInstance(); + if (!method_exists($instance, '_plugin')) { + throw new Exception('FirePHP::plugin() implementation not loaded'); + } + $args = func_get_args(); + return call_user_func_array(array($instance, '_plugin'), $args); + } + + /** + * Check if FirePHP is installed on client + * + * @return boolean + */ + public function detectClientExtension() + { + // Check if FirePHP is installed on client via User-Agent header + if (@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si', $this->getUserAgent(), $m) && + version_compare($m[1][0], '0.0.6', '>=')) { + return true; + } else + // Check if FirePHP is installed on client via X-FirePHP-Version header + if (@preg_match_all('/^([\.\d]*)$/si', $this->getRequestHeader('X-FirePHP-Version'), $m) && + version_compare($m[1][0], '0.0.6', '>=')) { + return true; + } + return false; + } + + /** + * Log varible to Firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $object The variable to be logged + * @return boolean Return TRUE if message was added to headers, FALSE otherwise + * @throws Exception + */ + public function fb($object) + { + if ($this instanceof FirePHP_Insight && method_exists($this, '_logUpgradeClientMessage')) { + if (!FirePHP_Insight::$upgradeClientMessageLogged) { // avoid infinite recursion as _logUpgradeClientMessage() logs a message + $this->_logUpgradeClientMessage(); + } + } + + static $insightGroupStack = array(); + + if (!$this->getEnabled()) { + return false; + } + + if ($this->headersSent($filename, $linenum)) { + // If we are logging from within the exception handler we cannot throw another exception + if ($this->inExceptionHandler) { + // Simply echo the error out to the page + echo '
    FirePHP ERROR: Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.
    '; + } else { + throw $this->newException('Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.'); + } + } + + $type = null; + $label = null; + $options = array(); + + if (func_num_args() == 1) { + } else if (func_num_args() == 2) { + switch (func_get_arg(1)) { + case self::LOG: + case self::INFO: + case self::WARN: + case self::ERROR: + case self::DUMP: + case self::TRACE: + case self::EXCEPTION: + case self::TABLE: + case self::GROUP_START: + case self::GROUP_END: + $type = func_get_arg(1); + break; + default: + $label = func_get_arg(1); + break; + } + } else if (func_num_args() == 3) { + $type = func_get_arg(2); + $label = func_get_arg(1); + } else if (func_num_args() == 4) { + $type = func_get_arg(2); + $label = func_get_arg(1); + $options = func_get_arg(3); + } else { + throw $this->newException('Wrong number of arguments to fb() function!'); + } + + if ($this->logToInsightConsole !== null && (get_class($this) == 'FirePHP_Insight' || is_subclass_of($this, 'FirePHP_Insight'))) { + $trace = debug_backtrace(); + if (!$trace) return false; + for ($i = 0; $i < sizeof($trace); $i++) { + if (isset($trace[$i]['class'])) { + if ($trace[$i]['class'] == 'FirePHP' || $trace[$i]['class'] == 'FB') { + continue; + } + } + if (isset($trace[$i]['file'])) { + $path = $this->_standardizePath($trace[$i]['file']); + if (substr($path, -18, 18) == 'FirePHPCore/fb.php' || substr($path, -29, 29) == 'FirePHPCore/FirePHP.class.php') { + continue; + } + } + if (isset($trace[$i]['function']) && $trace[$i]['function'] == 'fb' && + isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + continue; + } + if (isset($trace[$i]['class']) && $trace[$i]['class'] == 'FB' && + isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + continue; + } + break; + } + // adjust trace offset + $msg = $this->logToInsightConsole->option('encoder.trace.offsetAdjustment', $i); + + if ($object instanceof Exception) { + $type = self::EXCEPTION; + } + if ($label && $type != self::TABLE && $type != self::GROUP_START) { + $msg = $msg->label($label); + } + switch ($type) { + case self::DUMP: + case self::LOG: + return $msg->log($object); + case self::INFO: + return $msg->info($object); + case self::WARN: + return $msg->warn($object); + case self::ERROR: + return $msg->error($object); + case self::TRACE: + return $msg->trace($object); + case self::EXCEPTION: + return $this->plugin('error')->handleException($object, $msg); + case self::TABLE: + if (isset($object[0]) && !is_string($object[0]) && $label) { + $object = array($label, $object); + } + return $msg->table($object[0], array_slice($object[1], 1), $object[1][0]); + case self::GROUP_START: + $insightGroupStack[] = $msg->group(md5($label))->open(); + return $msg->log($label); + case self::GROUP_END: + if (count($insightGroupStack) == 0) { + throw new Error('Too many groupEnd() as opposed to group() calls!'); + } + $group = array_pop($insightGroupStack); + return $group->close(); + default: + return $msg->log($object); + } + } + + if (!$this->detectClientExtension()) { + return false; + } + + $meta = array(); + $skipFinalObjectEncode = false; + + if ($object instanceof Exception) { + + $meta['file'] = $this->_escapeTraceFile($object->getFile()); + $meta['line'] = $object->getLine(); + + $trace = $object->getTrace(); + if ($object instanceof ErrorException + && isset($trace[0]['function']) + && $trace[0]['function'] == 'errorHandler' + && isset($trace[0]['class']) + && $trace[0]['class'] == 'FirePHP') { + + $severity = false; + switch ($object->getSeverity()) { + case E_WARNING: + $severity = 'E_WARNING'; + break; + + case E_NOTICE: + $severity = 'E_NOTICE'; + break; + + case E_USER_ERROR: + $severity = 'E_USER_ERROR'; + break; + + case E_USER_WARNING: + $severity = 'E_USER_WARNING'; + break; + + case E_USER_NOTICE: + $severity = 'E_USER_NOTICE'; + break; + + case E_STRICT: + $severity = 'E_STRICT'; + break; + + case E_RECOVERABLE_ERROR: + $severity = 'E_RECOVERABLE_ERROR'; + break; + + case E_DEPRECATED: + $severity = 'E_DEPRECATED'; + break; + + case E_USER_DEPRECATED: + $severity = 'E_USER_DEPRECATED'; + break; + } + + $object = array('Class' => get_class($object), + 'Message' => $severity . ': ' . $object->getMessage(), + 'File' => $this->_escapeTraceFile($object->getFile()), + 'Line' => $object->getLine(), + 'Type' => 'trigger', + 'Trace' => $this->_escapeTrace(array_splice($trace, 2))); + $skipFinalObjectEncode = true; + } else { + $object = array('Class' => get_class($object), + 'Message' => $object->getMessage(), + 'File' => $this->_escapeTraceFile($object->getFile()), + 'Line' => $object->getLine(), + 'Type' => 'throw', + 'Trace' => $this->_escapeTrace($trace)); + $skipFinalObjectEncode = true; + } + $type = self::EXCEPTION; + + } else if ($type == self::TRACE) { + + $trace = debug_backtrace(); + if (!$trace) return false; + for ($i = 0; $i < sizeof($trace); $i++) { + + if (isset($trace[$i]['class']) + && isset($trace[$i]['file']) + && ($trace[$i]['class'] == 'FirePHP' + || $trace[$i]['class'] == 'FB') + && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if (isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class'] == 'FirePHP' + && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if ($trace[$i]['function'] == 'fb' + || $trace[$i]['function'] == 'trace' + || $trace[$i]['function'] == 'send') { + + $object = array('Class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : '', + 'Type' => isset($trace[$i]['type']) ? $trace[$i]['type'] : '', + 'Function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : '', + 'Message' => $trace[$i]['args'][0], + 'File' => isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '', + 'Line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : '', + 'Args' => isset($trace[$i]['args']) ? $this->encodeObject($trace[$i]['args']) : '', + 'Trace' => $this->_escapeTrace(array_splice($trace, $i + 1))); + + $skipFinalObjectEncode = true; + $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : ''; + $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : ''; + break; + } + } + + } else + if ($type == self::TABLE) { + + if (isset($object[0]) && is_string($object[0])) { + $object[1] = $this->encodeTable($object[1]); + } else { + $object = $this->encodeTable($object); + } + + $skipFinalObjectEncode = true; + + } else if ($type == self::GROUP_START) { + + if (!$label) { + throw $this->newException('You must specify a label for the group!'); + } + + } else { + if ($type === null) { + $type = self::LOG; + } + } + + if ($this->options['includeLineNumbers']) { + if (!isset($meta['file']) || !isset($meta['line'])) { + + $trace = debug_backtrace(); + for ($i = 0; $trace && $i < sizeof($trace); $i++) { + + if (isset($trace[$i]['class']) + && isset($trace[$i]['file']) + && ($trace[$i]['class'] == 'FirePHP' + || $trace[$i]['class'] == 'FB') + && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if (isset($trace[$i]['class']) + && isset($trace[$i + 1]['file']) + && $trace[$i]['class'] == 'FirePHP' + && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if (isset($trace[$i]['file']) + && substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php') { + /* Skip FB::fb() */ + } else { + $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : ''; + $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : ''; + break; + } + } + } + } else { + unset($meta['file']); + unset($meta['line']); + } + + $this->setHeader('X-Wf-Protocol-1', 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'); + $this->setHeader('X-Wf-1-Plugin-1', 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/' . self::VERSION); + + $structureIndex = 1; + if ($type == self::DUMP) { + $structureIndex = 2; + $this->setHeader('X-Wf-1-Structure-2', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1'); + } else { + $this->setHeader('X-Wf-1-Structure-1', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'); + } + + if ($type == self::DUMP) { + $msg = '{"' . $label . '":' . $this->jsonEncode($object, $skipFinalObjectEncode) . '}'; + } else { + $msgMeta = $options; + $msgMeta['Type'] = $type; + if ($label !== null) { + $msgMeta['Label'] = $label; + } + if (isset($meta['file']) && !isset($msgMeta['File'])) { + $msgMeta['File'] = $meta['file']; + } + if (isset($meta['line']) && !isset($msgMeta['Line'])) { + $msgMeta['Line'] = $meta['line']; + } + $msg = '[' . $this->jsonEncode($msgMeta) . ',' . $this->jsonEncode($object, $skipFinalObjectEncode) . ']'; + } + + $parts = explode("\n", chunk_split($msg, 5000, "\n")); + + for ($i = 0; $i < count($parts); $i++) { + + $part = $parts[$i]; + if ($part) { + + if (count($parts) > 2) { + // Message needs to be split into multiple parts + $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, + (($i == 0) ? strlen($msg) : '') + . '|' . $part . '|' + . (($i < count($parts) - 2) ? '\\' : '')); + } else { + $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, + strlen($part) . '|' . $part . '|'); + } + + $this->messageIndex++; + + if ($this->messageIndex > 99999) { + throw $this->newException('Maximum number (99,999) of messages reached!'); + } + } + } + + $this->setHeader('X-Wf-1-Index', $this->messageIndex - 1); + + return true; + } + + /** + * Standardizes path for windows systems. + * + * @param string $path + * @return string + */ + protected function _standardizePath($path) + { + return preg_replace('/\\\\+/', '/', $path); + } + + /** + * Escape trace path for windows systems + * + * @param array $trace + * @return array + */ + protected function _escapeTrace($trace) + { + if (!$trace) return $trace; + for ($i = 0; $i < sizeof($trace); $i++) { + if (isset($trace[$i]['file'])) { + $trace[$i]['file'] = $this->_escapeTraceFile($trace[$i]['file']); + } + if (isset($trace[$i]['args'])) { + $trace[$i]['args'] = $this->encodeObject($trace[$i]['args']); + } + } + return $trace; + } + + /** + * Escape file information of trace for windows systems + * + * @param string $file + * @return string + */ + protected function _escapeTraceFile($file) + { + /* Check if we have a windows filepath */ + if (strpos($file, '\\')) { + /* First strip down to single \ */ + + $file = preg_replace('/\\\\+/', '\\', $file); + + return $file; + } + return $file; + } + + /** + * Check if headers have already been sent + * + * @param string $filename + * @param integer $linenum + */ + protected function headersSent(&$filename, &$linenum) + { + return headers_sent($filename, $linenum); + } + + /** + * Send header + * + * @param string $name + * @param string $value + */ + protected function setHeader($name, $value) + { + return header($name . ': ' . $value); + } + + /** + * Get user agent + * + * @return string|false + */ + protected function getUserAgent() + { + if (!isset($_SERVER['HTTP_USER_AGENT'])) return false; + return $_SERVER['HTTP_USER_AGENT']; + } + + /** + * Get all request headers + * + * @return array + */ + public static function getAllRequestHeaders() + { + static $_cachedHeaders = false; + if ($_cachedHeaders !== false) { + return $_cachedHeaders; + } + $headers = array(); + if (function_exists('getallheaders')) { + foreach (getallheaders() as $name => $value) { + $headers[strtolower($name)] = $value; + } + } else { + foreach ($_SERVER as $name => $value) { + if (substr($name, 0, 5) == 'HTTP_') { + $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value; + } + } + } + return $_cachedHeaders = $headers; + } + + /** + * Get a request header + * + * @return string|false + */ + protected function getRequestHeader($name) + { + $headers = self::getAllRequestHeaders(); + if (isset($headers[strtolower($name)])) { + return $headers[strtolower($name)]; + } + return false; + } + + /** + * Returns a new exception + * + * @param string $message + * @return Exception + */ + protected function newException($message) + { + return new Exception($message); + } + + /** + * Encode an object into a JSON string + * + * Uses PHP's jeson_encode() if available + * + * @param object $object The object to be encoded + * @param boolean $skipObjectEncode + * @return string The JSON string + */ + public function jsonEncode($object, $skipObjectEncode = false) + { + if (!$skipObjectEncode) { + $object = $this->encodeObject($object); + } + + if (function_exists('json_encode') + && $this->options['useNativeJsonEncode'] != false) { + + return json_encode($object); + } else { + return $this->json_encode($object); + } + } + + /** + * Encodes a table by encoding each row and column with encodeObject() + * + * @param array $table The table to be encoded + * @return array + */ + protected function encodeTable($table) + { + if (!$table) return $table; + + $newTable = array(); + foreach ($table as $row) { + + if (is_array($row)) { + $newRow = array(); + + foreach ($row as $item) { + $newRow[] = $this->encodeObject($item); + } + + $newTable[] = $newRow; + } + } + + return $newTable; + } + + /** + * Encodes an object including members with + * protected and private visibility + * + * @param object $object The object to be encoded + * @param integer $Depth The current traversal depth + * @return array All members of the object + */ + protected function encodeObject($object, $objectDepth = 1, $arrayDepth = 1, $maxDepth = 1) + { + if ($maxDepth > $this->options['maxDepth']) { + return '** Max Depth (' . $this->options['maxDepth'] . ') **'; + } + + $return = array(); + + if (is_resource($object)) { + + return '** ' . (string) $object . ' **'; + + } else if (is_object($object)) { + + if ($objectDepth > $this->options['maxObjectDepth']) { + return '** Max Object Depth (' . $this->options['maxObjectDepth'] . ') **'; + } + + foreach ($this->objectStack as $refVal) { + if ($refVal === $object) { + return '** Recursion (' . get_class($object) . ') **'; + } + } + array_push($this->objectStack, $object); + + $return['__className'] = $class = get_class($object); + $classLower = strtolower($class); + + $reflectionClass = new ReflectionClass($class); + $properties = array(); + foreach ($reflectionClass->getProperties() as $property) { + $properties[$property->getName()] = $property; + } + + $members = (array)$object; + + foreach ($properties as $plainName => $property) { + + $name = $rawName = $plainName; + if ($property->isStatic()) { + $name = 'static:' . $name; + } + if ($property->isPublic()) { + $name = 'public:' . $name; + } else if ($property->isPrivate()) { + $name = 'private:' . $name; + $rawName = "\0" . $class . "\0" . $rawName; + } else if ($property->isProtected()) { + $name = 'protected:' . $name; + $rawName = "\0" . '*' . "\0" . $rawName; + } + + if (!(isset($this->objectFilters[$classLower]) + && is_array($this->objectFilters[$classLower]) + && in_array($plainName, $this->objectFilters[$classLower]))) { + + if (array_key_exists($rawName, $members) && !$property->isStatic()) { + $return[$name] = $this->encodeObject($members[$rawName], $objectDepth + 1, 1, $maxDepth + 1); + } else { + if (method_exists($property, 'setAccessible')) { + $property->setAccessible(true); + $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1); + } else + if ($property->isPublic()) { + $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1); + } else { + $return[$name] = '** Need PHP 5.3 to get value **'; + } + } + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + + // Include all members that are not defined in the class + // but exist in the object + foreach ($members as $rawName => $value) { + + $name = $rawName; + + if ($name{0} == "\0") { + $parts = explode("\0", $name); + $name = $parts[2]; + } + + $plainName = $name; + + if (!isset($properties[$name])) { + $name = 'undeclared:' . $name; + + if (!(isset($this->objectFilters[$classLower]) + && is_array($this->objectFilters[$classLower]) + && in_array($plainName, $this->objectFilters[$classLower]))) { + + $return[$name] = $this->encodeObject($value, $objectDepth + 1, 1, $maxDepth + 1); + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + } + + array_pop($this->objectStack); + + } elseif (is_array($object)) { + + if ($arrayDepth > $this->options['maxArrayDepth']) { + return '** Max Array Depth (' . $this->options['maxArrayDepth'] . ') **'; + } + + foreach ($object as $key => $val) { + + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if ($key == 'GLOBALS' + && is_array($val) + && array_key_exists('GLOBALS', $val)) { + $val['GLOBALS'] = '** Recursion (GLOBALS) **'; + } + + if (!$this->is_utf8($key)) { + $key = utf8_encode($key); + } + + $return[$key] = $this->encodeObject($val, 1, $arrayDepth + 1, $maxDepth + 1); + } + } else { + if ($this->is_utf8($object)) { + return $object; + } else { + return utf8_encode($object); + } + } + return $return; + } + + /** + * Returns true if $string is valid UTF-8 and false otherwise. + * + * @param mixed $str String to be tested + * @return boolean + */ + protected function is_utf8($str) + { + if (function_exists('mb_detect_encoding')) { + return ( + mb_detect_encoding($str, 'UTF-8', true) == 'UTF-8' && + ($str === null || $this->jsonEncode($str, true) !== 'null') + ); + } + $c = 0; + $b = 0; + $bits = 0; + $len = strlen($str); + for ($i = 0; $i < $len; $i++) { + $c = ord($str[$i]); + if ($c > 128) { + if (($c >= 254)) return false; + elseif ($c >= 252) $bits = 6; + elseif ($c >= 248) $bits = 5; + elseif ($c >= 240) $bits = 4; + elseif ($c >= 224) $bits = 3; + elseif ($c >= 192) $bits = 2; + else return false; + if (($i + $bits) > $len) return false; + while($bits > 1) { + $i++; + $b = ord($str[$i]); + if ($b < 128 || $b > 191) return false; + $bits--; + } + } + } + return ($str === null || $this->jsonEncode($str, true) !== 'null'); + } + + /** + * Converts to and from JSON format. + * + * JSON (JavaScript Object Notation) is a lightweight data-interchange + * format. It is easy for humans to read and write. It is easy for machines + * to parse and generate. It is based on a subset of the JavaScript + * Programming Language, Standard ECMA-262 3rd Edition - December 1999. + * This feature can also be found in Python. JSON is a text format that is + * completely language independent but uses conventions that are familiar + * to programmers of the C-family of languages, including C, C++, C#, Java, + * JavaScript, Perl, TCL, and many others. These properties make JSON an + * ideal data-interchange language. + * + * This package provides a simple encoder and decoder for JSON notation. It + * is intended for use with client-side Javascript applications that make + * use of HTTPRequest to perform server communication functions - data can + * be encoded into JSON notation for use in a client-side javascript, or + * decoded from incoming Javascript requests. JSON format is native to + * Javascript, and can be directly eval()'ed with no further parsing + * overhead + * + * All strings should be in ASCII or UTF-8 format! + * + * LICENSE: Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: Redistributions of source code must retain the + * above copyright notice, this list of conditions and the following + * disclaimer. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * @category + * @package Services_JSON + * @author Michal Migurski + * @author Matt Knapp + * @author Brett Stimmerman + * @author Christoph Dorn + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + + + /** + * Keep a list of objects as we descend into the array so we can detect recursion. + */ + private $json_objectStack = array(); + + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + private function json_utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if (function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch (strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + private function json_encode($var) + { + if (is_object($var)) { + if (in_array($var, $this->json_objectStack)) { + return '"** Recursion **"'; + } + } + + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\' . $var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"' . $ascii . '"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($var), + array_values($var)); + + array_pop($this->json_objectStack); + + foreach ($properties as $property) { + if ($property instanceof Exception) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + $this->json_objectStack[] = $var; + + // treat it like a regular array + $elements = array_map(array($this, 'json_encode'), $var); + + array_pop($this->json_objectStack); + + foreach ($elements as $element) { + if ($element instanceof Exception) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = self::encodeObject($var); + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($vars), + array_values($vars)); + + array_pop($this->json_objectStack); + + foreach ($properties as $property) { + if ($property instanceof Exception) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return null; + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + private function json_name_value($name, $value) + { + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if ($name == 'GLOBALS' + && is_array($value) + && array_key_exists('GLOBALS', $value)) { + $value['GLOBALS'] = '** Recursion **'; + } + + $encodedValue = $this->json_encode($value); + + if ($encodedValue instanceof Exception) { + return $encodedValue; + } + + return $this->json_encode(strval($name)) . ':' . $encodedValue; + } + + /** + * @deprecated + */ + public function setProcessorUrl($URL) + { + trigger_error('The FirePHP::setProcessorUrl() method is no longer supported', E_USER_DEPRECATED); + } + + /** + * @deprecated + */ + public function setRendererUrl($URL) + { + trigger_error('The FirePHP::setRendererUrl() method is no longer supported', E_USER_DEPRECATED); + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 new file mode 100644 index 00000000000..d702cea4a35 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php4 @@ -0,0 +1,1327 @@ +, Copyright 2007, New BSD License +// - qbbr, Michael Day , Copyright 2008, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * *** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * This verion of FirePHPCore is for use with PHP4. If you do not require PHP4 + * compatibility, it is suggested you use FirePHPCore.class.php instead. + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +/** + * FirePHP version + * + * @var string + */ +define('FirePHP_VERSION', '0.3'); // @pinf replace '0.3' with '%%VERSION%%' + +/** + * Firebug LOG level + * + * Logs a message to firebug console + * + * @var string + */ +define('FirePHP_LOG', 'LOG'); + +/** + * Firebug INFO level + * + * Logs a message to firebug console and displays an info icon before the message + * + * @var string + */ +define('FirePHP_INFO', 'INFO'); + +/** + * Firebug WARN level + * + * Logs a message to firebug console, displays a warning icon before the message and colors the line turquoise + * + * @var string + */ +define('FirePHP_WARN', 'WARN'); + +/** + * Firebug ERROR level + * + * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count. + * + * @var string + */ +define('FirePHP_ERROR', 'ERROR'); + +/** + * Dumps a variable to firebug's server panel + * + * @var string + */ +define('FirePHP_DUMP', 'DUMP'); + +/** + * Displays a stack trace in firebug console + * + * @var string + */ +define('FirePHP_TRACE', 'TRACE'); + +/** + * Displays a table in firebug console + * + * @var string + */ +define('FirePHP_TABLE', 'TABLE'); + +/** + * Starts a group in firebug console + * + * @var string + */ +define('FirePHP_GROUP_START', 'GROUP_START'); + +/** + * Ends a group in firebug console + * + * @var string + */ +define('FirePHP_GROUP_END', 'GROUP_END'); + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * For more information see: http://www.firephp.org/ + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ +class FirePHP { + /** + * Wildfire protocol message index + * + * @var int + */ + var $messageIndex = 1; + + /** + * Options for the library + * + * @var array + */ + var $options = array('maxObjectDepth' => 5, + 'maxArrayDepth' => 5, + 'useNativeJsonEncode' => true, + 'includeLineNumbers' => true); + + /** + * Filters used to exclude object members when encoding + * + * @var array + */ + var $objectFilters = array(); + + /** + * A stack of objects used to detect recursion during object encoding + * + * @var object + */ + var $objectStack = array(); + + /** + * Flag to enable/disable logging + * + * @var boolean + */ + var $enabled = true; + + /** + * The object constructor + */ + function FirePHP() { + } + + + /** + * When the object gets serialized only include specific object members. + * + * @return array + */ + function __sleep() { + return array('options','objectFilters','enabled'); + } + + /** + * Gets singleton instance of FirePHP + * + * @param boolean $AutoCreate + * @return FirePHP + */ + function &getInstance($AutoCreate=false) { + global $FirePHP_Instance; + + if($AutoCreate===true && !$FirePHP_Instance) { + $FirePHP_Instance = new FirePHP(); + } + + return $FirePHP_Instance; + } + + /** + * Enable and disable logging to Firebug + * + * @param boolean $Enabled TRUE to enable, FALSE to disable + * @return void + */ + function setEnabled($Enabled) { + $this->enabled = $Enabled; + } + + /** + * Check if logging is enabled + * + * @return boolean TRUE if enabled + */ + function getEnabled() { + return $this->enabled; + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @param string $Class The class name of the object + * @param array $Filter An array of members to exclude + * @return void + */ + function setObjectFilter($Class, $Filter) { + $this->objectFilters[strtolower($Class)] = $Filter; + } + + /** + * Set some options for the library + * + * Options: + * - maxObjectDepth: The maximum depth to traverse objects (default: 5) + * - maxArrayDepth: The maximum depth to traverse arrays (default: 5) + * - useNativeJsonEncode: If true will use json_encode() (default: true) + * - includeLineNumbers: If true will include line numbers and filenames (default: true) + * + * @param array $Options The options to be set + * @return void + */ + function setOptions($Options) { + $this->options = array_merge($this->options,$Options); + } + + /** + * Get options from the library + * + * @return array The currently set options + */ + function getOptions() { + return $this->options; + } + + /** + * Register FirePHP as your error handler + * + * Will use FirePHP to log each php error. + * + * @return mixed Returns a string containing the previously defined error handler (if any) + */ + function registerErrorHandler() + { + //NOTE: The following errors will not be caught by this error handler: + // E_ERROR, E_PARSE, E_CORE_ERROR, + // E_CORE_WARNING, E_COMPILE_ERROR, + // E_COMPILE_WARNING, E_STRICT + + return set_error_handler(array($this,'errorHandler')); + } + + /** + * FirePHP's error handler + * + * Logs each php error that will occur. + * + * @param int $errno + * @param string $errstr + * @param string $errfile + * @param int $errline + * @param array $errcontext + */ + function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) + { + global $FirePHP_Instance; + // Don't log error if error reporting is switched off + if (error_reporting() == 0) { + return; + } + // Only log error for errors we are asking for + if (error_reporting() & $errno) { + $FirePHP_Instance->group($errstr); + $FirePHP_Instance->error("{$errfile}, line $errline"); + $FirePHP_Instance->groupEnd(); + } + } + + /** + * Register FirePHP driver as your assert callback + * + * @return mixed Returns the original setting + */ + function registerAssertionHandler() + { + return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler')); + } + + /** + * FirePHP's assertion handler + * + * Logs all assertions to your firebug console and then stops the script. + * + * @param string $file File source of assertion + * @param int $line Line source of assertion + * @param mixed $code Assertion code + */ + function assertionHandler($file, $line, $code) + { + $this->fb($code, 'Assertion Failed', FirePHP_ERROR, array('File'=>$file,'Line'=>$line)); + } + + /** + * Set custom processor url for FirePHP + * + * @param string $URL + */ + function setProcessorUrl($URL) + { + $this->setHeader('X-FirePHP-ProcessorURL', $URL); + } + + /** + * Set custom renderer url for FirePHP + * + * @param string $URL + */ + function setRendererUrl($URL) + { + $this->setHeader('X-FirePHP-RendererURL', $URL); + } + + /** + * Start a group for following messages. + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $Name + * @param array $Options OPTIONAL Instructions on how to log the group + * @return true + * @throws Exception + */ + function group($Name, $Options=null) { + + if(!$Name) { + trigger_error('You must specify a label for the group!'); + } + + if($Options) { + if(!is_array($Options)) { + trigger_error('Options must be defined as an array!'); + } + if(array_key_exists('Collapsed', $Options)) { + $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false'; + } + } + + return $this->fb(null, $Name, FirePHP_GROUP_START, $Options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + function groupEnd() { + return $this->fb(null, null, FirePHP_GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function log($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function info($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function warn($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $Object + * @param string $Label + * @return true + * @throws Exception + */ + function error($Object, $Label=null) { + return $this->fb($Object, $Label, FirePHP_ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $Key + * @param mixed $Variable + * @return true + * @throws Exception + */ + function dump($Key, $Variable) { + return $this->fb($Variable, $Key, FirePHP_DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $Label + * @return true + * @throws Exception + */ + function trace($Label) { + return $this->fb($Label, FirePHP_TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $Label + * @param string $Table + * @return true + * @throws Exception + */ + function table($Label, $Table) { + return $this->fb($Table, $Label, FirePHP_TABLE); + } + + /** + * Check if FirePHP is installed on client + * + * @return boolean + */ + function detectClientExtension() { + // Check if FirePHP is installed on client via User-Agent header + if(@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si',$this->getUserAgent(),$m) && + version_compare($m[1][0],'0.0.6','>=')) { + return true; + } else + // Check if FirePHP is installed on client via X-FirePHP-Version header + if(@preg_match_all('/^([\.\d]*)$/si',$this->getRequestHeader("X-FirePHP-Version"),$m) && + version_compare($m[1][0],'0.0.6','>=')) { + return true; + } + return false; + } + + /** + * Log varible to Firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object The variable to be logged + * @return true Return TRUE if message was added to headers, FALSE otherwise + * @throws Exception + */ + function fb($Object) { + + if(!$this->enabled) { + return false; + } + + if (headers_sent($filename, $linenum)) { + trigger_error('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.'); + } + + $Type = null; + $Label = null; + $Options = array(); + + if(func_num_args()==1) { + } else + if(func_num_args()==2) { + switch(func_get_arg(1)) { + case FirePHP_LOG: + case FirePHP_INFO: + case FirePHP_WARN: + case FirePHP_ERROR: + case FirePHP_DUMP: + case FirePHP_TRACE: + case FirePHP_TABLE: + case FirePHP_GROUP_START: + case FirePHP_GROUP_END: + $Type = func_get_arg(1); + break; + default: + $Label = func_get_arg(1); + break; + } + } else + if(func_num_args()==3) { + $Type = func_get_arg(2); + $Label = func_get_arg(1); + } else + if(func_num_args()==4) { + $Type = func_get_arg(2); + $Label = func_get_arg(1); + $Options = func_get_arg(3); + } else { + trigger_error('Wrong number of arguments to fb() function!'); + } + + + if(!$this->detectClientExtension()) { + return false; + } + + $meta = array(); + $skipFinalObjectEncode = false; + + if($Type==FirePHP_TRACE) { + + $trace = debug_backtrace(); + if(!$trace) return false; + for( $i=0 ; $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if(isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class']=='FirePHP' + && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if($trace[$i]['function']=='fb' + || $trace[$i]['function']=='trace' + || $trace[$i]['function']=='send') { + $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'', + 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'', + 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'', + 'Message'=>$trace[$i]['args'][0], + 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'', + 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'', + 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'', + 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1))); + + $skipFinalObjectEncode = true; + $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):''; + $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:''; + break; + } + } + + } else + if($Type==FirePHP_TABLE) { + + if(isset($Object[0]) && is_string($Object[0])) { + $Object[1] = $this->encodeTable($Object[1]); + } else { + $Object = $this->encodeTable($Object); + } + + $skipFinalObjectEncode = true; + + } else + if($Type==FirePHP_GROUP_START) { + + if(!$Label) { + trigger_error('You must specify a label for the group!'); + } + } else { + if($Type===null) { + $Type = FirePHP_LOG; + } + } + + if($this->options['includeLineNumbers']) { + if(!isset($meta['file']) || !isset($meta['line'])) { + + $trace = debug_backtrace(); + for( $i=0 ; $trace && $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php' + || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) { + /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */ + } else + if(isset($trace[$i]['class']) + && isset($trace[$i+1]['file']) + && $trace[$i]['class']=='FirePHP' + && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip fb() */ + } else + if(isset($trace[$i]['file']) + && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') { + /* Skip FB::fb() */ + } else { + $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):''; + $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:''; + break; + } + } + + } + } else { + unset($meta['file']); + unset($meta['line']); + } + + $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2'); + $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.FirePHP_VERSION); + + $structure_index = 1; + if($Type==FirePHP_DUMP) { + $structure_index = 2; + $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1'); + } else { + $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'); + } + + if($Type==FirePHP_DUMP) { + $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}'; + } else { + $msg_meta = $Options; + $msg_meta['Type'] = $Type; + if($Label!==null) { + $msg_meta['Label'] = $Label; + } + if(isset($meta['file']) && !isset($msg_meta['File'])) { + $msg_meta['File'] = $meta['file']; + } + if(isset($meta['line']) && !isset($msg_meta['Line'])) { + $msg_meta['Line'] = $meta['line']; + } + $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']'; + } + + $parts = explode("\n",chunk_split($msg, 5000, "\n")); + + for( $i=0 ; $i2) { + // Message needs to be split into multiple parts + $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex, + (($i==0)?strlen($msg):'') + . '|' . $part . '|' + . (($isetHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex, + strlen($part) . '|' . $part . '|'); + } + + $this->messageIndex++; + + if ($this->messageIndex > 99999) { + trigger_error('Maximum number (99,999) of messages reached!'); + } + } + } + + $this->setHeader('X-Wf-1-Index',$this->messageIndex-1); + + return true; + } + + + /** + * Standardizes path for windows systems. + * + * @param string $Path + * @return string + */ + function _standardizePath($Path) { + return preg_replace('/\\\\+/','/',$Path); + } + + /** + * Escape trace path for windows systems + * + * @param array $Trace + * @return array + */ + function _escapeTrace($Trace) { + if(!$Trace) return $Trace; + for( $i=0 ; $i_escapeTraceFile($Trace[$i]['file']); + } + if(isset($Trace[$i]['args'])) { + $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']); + } + } + return $Trace; + } + + /** + * Escape file information of trace for windows systems + * + * @param string $File + * @return string + */ + function _escapeTraceFile($File) { + /* Check if we have a windows filepath */ + if(strpos($File,'\\')) { + /* First strip down to single \ */ + + $file = preg_replace('/\\\\+/','\\',$File); + + return $file; + } + return $File; + } + + /** + * Send header + * + * @param string $Name + * @param string_type $Value + */ + function setHeader($Name, $Value) { + return header($Name.': '.$Value); + } + + /** + * Get user agent + * + * @return string|false + */ + function getUserAgent() { + if(!isset($_SERVER['HTTP_USER_AGENT'])) return false; + return $_SERVER['HTTP_USER_AGENT']; + } + + /** + * Get all request headers + * + * @return array + */ + function getAllRequestHeaders() { + $headers = array(); + if(function_exists('getallheaders')) { + foreach( getallheaders() as $name => $value ) { + $headers[strtolower($name)] = $value; + } + } else { + foreach($_SERVER as $name => $value) { + if(substr($name, 0, 5) == 'HTTP_') { + $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value; + } + } + } + return $headers; + } + + /** + * Get a request header + * + * @return string|false + */ + function getRequestHeader($Name) + { + $headers = $this->getAllRequestHeaders(); + if (isset($headers[strtolower($Name)])) { + return $headers[strtolower($Name)]; + } + return false; + } + + /** + * Encode an object into a JSON string + * + * Uses PHP's jeson_encode() if available + * + * @param object $Object The object to be encoded + * @return string The JSON string + */ + function jsonEncode($Object, $skipObjectEncode=false) + { + if(!$skipObjectEncode) { + $Object = $this->encodeObject($Object); + } + + if(function_exists('json_encode') + && $this->options['useNativeJsonEncode']!=false) { + + return json_encode($Object); + } else { + return $this->json_encode($Object); + } + } + + /** + * Encodes a table by encoding each row and column with encodeObject() + * + * @param array $Table The table to be encoded + * @return array + */ + function encodeTable($Table) { + + if(!$Table) return $Table; + + $new_table = array(); + foreach($Table as $row) { + + if(is_array($row)) { + $new_row = array(); + + foreach($row as $item) { + $new_row[] = $this->encodeObject($item); + } + + $new_table[] = $new_row; + } + } + + return $new_table; + } + + /** + * Encodes an object + * + * @param Object $Object The object to be encoded + * @param int $Depth The current traversal depth + * @return array All members of the object + */ + function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1) + { + $return = array(); + + if (is_resource($Object)) { + + return '** '.(string)$Object.' **'; + + } else + if (is_object($Object)) { + + if ($ObjectDepth > $this->options['maxObjectDepth']) { + return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **'; + } + + foreach ($this->objectStack as $refVal) { + if ($refVal === $Object) { + return '** Recursion ('.get_class($Object).') **'; + } + } + array_push($this->objectStack, $Object); + + $return['__className'] = $class = get_class($Object); + $class_lower = strtolower($class); + + $members = (array)$Object; + + // Include all members that are not defined in the class + // but exist in the object + foreach( $members as $raw_name => $value ) { + + $name = $raw_name; + + if ($name{0} == "\0") { + $parts = explode("\0", $name); + $name = $parts[2]; + } + + if(!isset($properties[$name])) { + $name = 'undeclared:'.$name; + + if(!(isset($this->objectFilters[$class_lower]) + && is_array($this->objectFilters[$class_lower]) + && in_array($raw_name,$this->objectFilters[$class_lower]))) { + + $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1); + } else { + $return[$name] = '** Excluded by Filter **'; + } + } + } + + array_pop($this->objectStack); + + } elseif (is_array($Object)) { + + if ($ArrayDepth > $this->options['maxArrayDepth']) { + return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **'; + } + + foreach ($Object as $key => $val) { + + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if($key=='GLOBALS' + && is_array($val) + && array_key_exists('GLOBALS',$val)) { + $val['GLOBALS'] = '** Recursion (GLOBALS) **'; + } + + $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1); + } + } else { + if($this->is_utf8($Object)) { + return $Object; + } else { + return utf8_encode($Object); + } + } + return $return; + + } + + /** + * Returns true if $string is valid UTF-8 and false otherwise. + * + * @param mixed $str String to be tested + * @return boolean + */ + function is_utf8($str) { + $c=0; $b=0; + $bits=0; + $len=strlen($str); + for($i=0; $i<$len; $i++){ + $c=ord($str[$i]); + if($c > 128){ + if(($c >= 254)) return false; + elseif($c >= 252) $bits=6; + elseif($c >= 248) $bits=5; + elseif($c >= 240) $bits=4; + elseif($c >= 224) $bits=3; + elseif($c >= 192) $bits=2; + else return false; + if(($i+$bits) > $len) return false; + while($bits > 1){ + $i++; + $b=ord($str[$i]); + if($b < 128 || $b > 191) return false; + $bits--; + } + } + } + return true; + } + + /** + * Converts to and from JSON format. + * + * JSON (JavaScript Object Notation) is a lightweight data-interchange + * format. It is easy for humans to read and write. It is easy for machines + * to parse and generate. It is based on a subset of the JavaScript + * Programming Language, Standard ECMA-262 3rd Edition - December 1999. + * This feature can also be found in Python. JSON is a text format that is + * completely language independent but uses conventions that are familiar + * to programmers of the C-family of languages, including C, C++, C#, Java, + * JavaScript, Perl, TCL, and many others. These properties make JSON an + * ideal data-interchange language. + * + * This package provides a simple encoder and decoder for JSON notation. It + * is intended for use with client-side Javascript applications that make + * use of HTTPRequest to perform server communication functions - data can + * be encoded into JSON notation for use in a client-side javascript, or + * decoded from incoming Javascript requests. JSON format is native to + * Javascript, and can be directly eval()'ed with no further parsing + * overhead + * + * All strings should be in ASCII or UTF-8 format! + * + * LICENSE: Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: Redistributions of source code must retain the + * above copyright notice, this list of conditions and the following + * disclaimer. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * @category + * @package Services_JSON + * @author Michal Migurski + * @author Matt Knapp + * @author Brett Stimmerman + * @author Christoph Dorn + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + + + /** + * Keep a list of objects as we descend into the array so we can detect recursion. + */ + var $json_objectStack = array(); + + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function json_utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function json_encode($var) + { + + if(is_object($var)) { + if(in_array($var,$this->json_objectStack)) { + return '"** Recursion **"'; + } + } + + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->json_utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($var), + array_values($var)); + + array_pop($this->json_objectStack); + + return '{' . join(',', $properties) . '}'; + } + + $this->json_objectStack[] = $var; + + // treat it like a regular array + $elements = array_map(array($this, 'json_encode'), $var); + + array_pop($this->json_objectStack); + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = FirePHP::encodeObject($var); + + $this->json_objectStack[] = $var; + + $properties = array_map(array($this, 'json_name_value'), + array_keys($vars), + array_values($vars)); + + array_pop($this->json_objectStack); + + return '{' . join(',', $properties) . '}'; + + default: + return null; + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function json_name_value($name, $value) + { + // Encoding the $GLOBALS PHP array causes an infinite loop + // if the recursion is not reset here as it contains + // a reference to itself. This is the only way I have come up + // with to stop infinite recursion in this case. + if($name=='GLOBALS' + && is_array($value) + && array_key_exists('GLOBALS',$value)) { + $value['GLOBALS'] = '** Recursion **'; + } + + $encoded_value = $this->json_encode($value); + + return $this->json_encode(strval($name)) . ':' . $encoded_value; + } +} + diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php new file mode 100644 index 00000000000..8827ba15d97 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php @@ -0,0 +1,275 @@ +, Copyright 2007, New BSD License +// - qbbr, Sokolov Innokenty , Copyright 2011, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/** + * ***** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +if (!class_exists('FirePHP', false)) { + require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'FirePHP.class.php'; +} + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + * @throws Exception + */ +function fb() +{ + $instance = FirePHP::getInstance(true); + + $args = func_get_args(); + return call_user_func_array(array($instance, 'fb'), $args); +} + + +class FB +{ + /** + * Set an Insight console to direct all logging calls to + * + * @param object $console The console object to log to + * @return void + */ + public static function setLogToInsightConsole($console) + { + FirePHP::getInstance(true)->setLogToInsightConsole($console); + } + + /** + * Enable and disable logging to Firebug + * + * @see FirePHP->setEnabled() + * @param boolean $enabled TRUE to enable, FALSE to disable + * @return void + */ + public static function setEnabled($enabled) + { + FirePHP::getInstance(true)->setEnabled($enabled); + } + + /** + * Check if logging is enabled + * + * @see FirePHP->getEnabled() + * @return boolean TRUE if enabled + */ + public static function getEnabled() + { + return FirePHP::getInstance(true)->getEnabled(); + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @see FirePHP->setObjectFilter() + * @param string $class The class name of the object + * @param array $filter An array or members to exclude + * @return void + */ + public static function setObjectFilter($class, $filter) + { + FirePHP::getInstance(true)->setObjectFilter($class, $filter); + } + + /** + * Set some options for the library + * + * @see FirePHP->setOptions() + * @param array $options The options to be set + * @return void + */ + public static function setOptions($options) + { + FirePHP::getInstance(true)->setOptions($options); + } + + /** + * Get options for the library + * + * @see FirePHP->getOptions() + * @return array The options + */ + public static function getOptions() + { + return FirePHP::getInstance(true)->getOptions(); + } + + /** + * Log object to firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $object + * @return true + * @throws Exception + */ + public static function send() + { + $args = func_get_args(); + return call_user_func_array(array(FirePHP::getInstance(true), 'fb'), $args); + } + + /** + * Start a group for following messages + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $name + * @param array $options OPTIONAL Instructions on how to log the group + * @return true + */ + public static function group($name, $options=null) + { + return FirePHP::getInstance(true)->group($name, $options); + } + + /** + * Ends a group you have started before + * + * @return true + * @throws Exception + */ + public static function groupEnd() + { + return self::send(null, null, FirePHP::GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function log($object, $label=null) + { + return self::send($object, $label, FirePHP::LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function info($object, $label=null) + { + return self::send($object, $label, FirePHP::INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function warn($object, $label=null) + { + return self::send($object, $label, FirePHP::WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $object + * @param string $label + * @return true + * @throws Exception + */ + public static function error($object, $label=null) + { + return self::send($object, $label, FirePHP::ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $key + * @param mixed $variable + * @return true + * @throws Exception + */ + public static function dump($key, $variable) + { + return self::send($variable, $key, FirePHP::DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $label + * @return true + * @throws Exception + */ + public static function trace($label) + { + return self::send($label, FirePHP::TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $label + * @param string $table + * @return true + * @throws Exception + */ + public static function table($label, $table) + { + return self::send($table, $label, FirePHP::TABLE); + } + +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 new file mode 100644 index 00000000000..eab2f0f681b --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/lib/FirePHPCore/fb.php4 @@ -0,0 +1,245 @@ +, Copyright 2007, New BSD License +// - qbbr, Michael Day , Copyright 2008, New BSD License +// - cadorn, Christoph Dorn , Copyright 2011, MIT License + +/* ***** BEGIN LICENSE BLOCK ***** + * + * [MIT License](http://www.opensource.org/licenses/mit-license.php) + * + * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * ***** END LICENSE BLOCK ***** + * + * @copyright Copyright (C) 2007+ Christoph Dorn + * @author Christoph Dorn + * @author Michael Day + * @license [MIT License](http://www.opensource.org/licenses/mit-license.php) + * @package FirePHPCore + */ + +require_once dirname(__FILE__).'/FirePHP.class.php4'; + +/** + * Sends the given data to the FirePHP Firefox Extension. + * The data can be displayed in the Firebug Console or in the + * "Server" request tab. + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + * @throws Exception + */ +function fb() +{ + $instance =& FirePHP::getInstance(true); + + $args = func_get_args(); + return call_user_func_array(array(&$instance,'fb'),$args); +} + + +class FB +{ + /** + * Enable and disable logging to Firebug + * + * @see FirePHP->setEnabled() + * @param boolean $Enabled TRUE to enable, FALSE to disable + * @return void + */ + function setEnabled($Enabled) { + $instance =& FirePHP::getInstance(true); + $instance->setEnabled($Enabled); + } + + /** + * Check if logging is enabled + * + * @see FirePHP->getEnabled() + * @return boolean TRUE if enabled + */ + function getEnabled() { + $instance =& FirePHP::getInstance(true); + return $instance->getEnabled(); + } + + /** + * Specify a filter to be used when encoding an object + * + * Filters are used to exclude object members. + * + * @see FirePHP->setObjectFilter() + * @param string $Class The class name of the object + * @param array $Filter An array or members to exclude + * @return void + */ + function setObjectFilter($Class, $Filter) { + $instance =& FirePHP::getInstance(true); + $instance->setObjectFilter($Class, $Filter); + } + + /** + * Set some options for the library + * + * @see FirePHP->setOptions() + * @param array $Options The options to be set + * @return void + */ + function setOptions($Options) { + $instance =& FirePHP::getInstance(true); + $instance->setOptions($Options); + } + + /** + * Get options for the library + * + * @see FirePHP->getOptions() + * @return array The options + */ + function getOptions() { + $instance =& FirePHP::getInstance(true); + return $instance->getOptions(); + } + + /** + * Log object to firebug + * + * @see http://www.firephp.org/Wiki/Reference/Fb + * @param mixed $Object + * @return true + */ + function send() + { + $instance =& FirePHP::getInstance(true); + $args = func_get_args(); + return call_user_func_array(array(&$instance,'fb'),$args); + } + + /** + * Start a group for following messages + * + * Options: + * Collapsed: [true|false] + * Color: [#RRGGBB|ColorName] + * + * @param string $Name + * @param array $Options OPTIONAL Instructions on how to log the group + * @return true + */ + function group($Name, $Options=null) { + $instance =& FirePHP::getInstance(true); + return $instance->group($Name, $Options); + } + + /** + * Ends a group you have started before + * + * @return true + */ + function groupEnd() { + return FB::send(null, null, FirePHP_GROUP_END); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::LOG + * @param mixes $Object + * @param string $Label + * @return true + */ + function log($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_LOG); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::INFO + * @param mixes $Object + * @param string $Label + * @return true + */ + function info($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_INFO); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::WARN + * @param mixes $Object + * @param string $Label + * @return true + */ + function warn($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_WARN); + } + + /** + * Log object with label to firebug console + * + * @see FirePHP::ERROR + * @param mixes $Object + * @param string $Label + * @return true + */ + function error($Object, $Label=null) { + return FB::send($Object, $Label, FirePHP_ERROR); + } + + /** + * Dumps key and variable to firebug server panel + * + * @see FirePHP::DUMP + * @param string $Key + * @param mixed $Variable + * @return true + */ + function dump($Key, $Variable) { + return FB::send($Variable, $Key, FirePHP_DUMP); + } + + /** + * Log a trace in the firebug console + * + * @see FirePHP::TRACE + * @param string $Label + * @return true + */ + function trace($Label) { + return FB::send($Label, FirePHP_TRACE); + } + + /** + * Log a table in the firebug console + * + * @see FirePHP::TABLE + * @param string $Label + * @param string $Table + * @return true + */ + function table($Label, $Table) { + return FB::send($Table, $Label, FirePHP_TABLE); + } +} diff --git a/htdocs/includes/firephp/firephp-core/package.json b/htdocs/includes/firephp/firephp-core/package.json new file mode 100644 index 00000000000..291a920223a --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/package.json @@ -0,0 +1,43 @@ +{ + "uid": "https://github.com/firephp/firephp-core/", + "name": "firephp-core", + "version": "0.4.0", + "label": "FirePHP Server Library", + "repositories": [ + { + "type": "git", + "url": "git://github.com/firephp/firephp-core.git" + } + ], + "maintainers": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "web": "http://www.christophdorn.com/", + "alias": { + "github": "cadorn" + } + } + ], + "contributors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "web": "http://www.christophdorn.com/", + "alias": { + "github": "cadorn" + } + }, + { + "name": "Michael Day", + "email": "manveru.alma@gmail.com" + }, + { + "name": "Sokolov Innokenty", + "email": "sokolov.innokenty@gmail.com", + "alias": { + "github": "qbbr" + } + } + ] +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/program.json b/htdocs/includes/firephp/firephp-core/program.json new file mode 100644 index 00000000000..9889e97a36f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/program.json @@ -0,0 +1,5 @@ +{ + "extends": { + "location": "./workspace/program.json" + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/tests/API/newlines.php b/htdocs/includes/firephp/firephp-core/tests/API/newlines.php new file mode 100644 index 00000000000..1e5511e544d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/API/newlines.php @@ -0,0 +1,12 @@ +dump("key", "value"); + $headers = $firephp->_getHeaders(); + $this->assertEquals('15|{"key":"value"}|', $headers['X-Wf-1-2-1-1']); + $firephp->_clearHeaders(); + + $caught = false; + try { + $firephp->dump(array(), "value"); + } catch(Exception $e) { + // Key passed to dump() is not a string + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->dump("key \n\r value", "value"); + } catch(Exception $e) { + // Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:] + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->dump("keykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeykkeykeykeyk1", "value"); + } catch(Exception $e) { + // Key passed to dump() is longer than 100 characters + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=123 + */ + public function testRegisterErrorHandler() + { + $firephp = new FirePHP_Test_Class(); + $firephp->setOption("maxObjectDepth", 1); + $firephp->setOption("maxArrayDepth", 1); + + $firephp->registerErrorHandler(); + trigger_error("Hello World"); + $headers = $firephp->_getHeaders(); + if(!isset($headers["X-Wf-1-1-1-1"])) { + $this->fail("Error not in headers"); + } + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=122 + */ + public function testFirePHPClassInstanceLogging() + { + $firephp = new FirePHP_Test_Class(); + + $firephp->log($firephp); + $headers = $firephp->_getHeaders(); + if(!preg_match_all('/"protected:objectStack":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("objectStack member contains value"); + } + if(!preg_match_all('/"protected:static:instance":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("instance member should not be logged"); + } + if(!preg_match_all('/"undeclared:json_objectStack":"\\*\\* Excluded by Filter \\*\\*"/', $headers['X-Wf-1-1-1-1'], $m)) { + $this->fail("json_objectStack member should not be logged"); + } + } + + /** + * @issue http://code.google.com/p/firephp/issues/detail?id=114 + */ + public function testCustomFileLineOptions() + { + $firephp = new FirePHP_Test_Class(); + + $firephp->log("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->info("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->warn("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->error("message", "label", array("File"=>"/file/path", "Line"=>"1")); + $firephp->dump("key", "value", array("File"=>"/file/path", "Line"=>"1")); + $firephp->table("label", array(array("header"),array("cell")), array("File"=>"/file/path", "Line"=>"1")); + + $headers = $firephp->_getHeaders(); + + $this->assertEquals('75|[{"File":"\/file\/path","Line":"1","Type":"LOG","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-1']); + $this->assertEquals('76|[{"File":"\/file\/path","Line":"1","Type":"INFO","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-2']); + $this->assertEquals('76|[{"File":"\/file\/path","Line":"1","Type":"WARN","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-3']); + $this->assertEquals('77|[{"File":"\/file\/path","Line":"1","Type":"ERROR","Label":"label"},"message"]|', $headers['X-Wf-1-1-1-4']); + $this->assertEquals('15|{"key":"value"}|', $headers['X-Wf-1-2-1-5']); + $this->assertEquals('89|[{"File":"\/file\/path","Line":"1","Type":"TABLE","Label":"label"},[["header"],["cell"]]]|', $headers['X-Wf-1-1-1-6']); + } + + public function testRecursiveEncode() + { + $firephp = new FirePHP_Test_Class(); + + $obj = new FirePHPCore_FirePHPTest__TestObject(); + $obj->child = $obj; + + $firephp->log($obj, "label", array("File"=>"/file/path", "Line"=>"1")); + $headers = $firephp->_getHeaders(); + $this->assertEquals('215|[{"File":"\/file\/path","Line":"1","Type":"LOG","Label":"label"},{"__className":"FirePHPCore_FirePHPTest__TestObject","public:var":"value","undeclared:child":"** Recursion (FirePHPCore_FirePHPTest__TestObject) **"}]|', $headers['X-Wf-1-1-1-1']); + } + + public function testOptions() + { + $firephp = new FirePHP_Test_Class(); + + // defaults + $this->assertEquals(5, $firephp->getOption("maxObjectDepth")); + $this->assertEquals(5, $firephp->getOption("maxArrayDepth")); + $this->assertEquals(true, $firephp->getOption("useNativeJsonEncode")); + $this->assertEquals(true, $firephp->getOption("includeLineNumbers")); + + // modify + $firephp->setOption("maxObjectDepth", 1); + $this->assertEquals(1, $firephp->getOption("maxObjectDepth")); + + // invalid + $caught = false; + try { + $firephp->setOption("invalidName", 1); + } catch(Exception $e) { + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + + $caught = false; + try { + $firephp->getOption("invalidName"); + } catch(Exception $e) { + $caught = true; + } + if(!$caught) $this->fail('No exception thrown'); + } + + public function testDeprecatedMethods() + { + $firephp = new FirePHP_Test_Class(); + + $caught = false; + try { + $firephp->setProcessorUrl('URL'); + } catch(Exception $e) { + $caught = true; + $this->assertEquals(E_USER_DEPRECATED, $e->getCode()); + $this->assertEquals('The FirePHP::setProcessorUrl() method is no longer supported', $e->getMessage()); + } + if(!$caught) $this->fail('No deprecation error thrown'); + + $caught = false; + try { + $firephp->setRendererUrl('URL'); + } catch(Exception $e) { + $caught = true; + $this->assertEquals(E_USER_DEPRECATED, $e->getCode()); + $this->assertEquals('The FirePHP::setRendererUrl() method is no longer supported', $e->getMessage()); + } + if(!$caught) $this->fail('No deprecation error thrown'); + } + +} + + +class FirePHPCore_FirePHPTest__TestObject +{ + public $var = "value"; +} diff --git a/htdocs/includes/firephp/firephp-core/tests/TestHelper.php b/htdocs/includes/firephp/firephp-core/tests/TestHelper.php new file mode 100644 index 00000000000..bb65e73202d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/TestHelper.php @@ -0,0 +1,55 @@ +_headers; + } + public function _clearHeaders() { + $this->_headers = array(); + } + + + // ###################### + // # Subclassed Methods # + // ###################### + + protected function setHeader($Name, $Value) { + $this->_headers[$Name] = $Value; + } + + protected function headersSent(&$Filename, &$Linenum) { + return false; + } + + public function detectClientExtension() { + return true; + } + +} diff --git a/htdocs/includes/firephp/firephp-core/tests/phpunit.xml b/htdocs/includes/firephp/firephp-core/tests/phpunit.xml new file mode 100644 index 00000000000..b0474e9d627 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/tests/phpunit.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/README.md b/htdocs/includes/firephp/firephp-core/workspace/README.md new file mode 100644 index 00000000000..999f09a9418 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/README.md @@ -0,0 +1,19 @@ + +The [PINF JavaScript Loader](https://github.com/pinf/loader-js) is used to provide a development environment and package releases for this project. + +**NOTE:** It is assumed you have the _PINF JavaScript Loader_ mapped to the `commonjs` command and are using the `node` platform by default as explained [here](https://github.com/pinf/loader-js/blob/master/docs/Setup.md). + + +Publishing +========== + + git tag v... + + commonjs -v --script build . + + commonjs -v --script publish . + + +TODO: Auto-upload to PEAR channel server at http://pear.firephp.org/ + +NOTE: For PEAR RC releases: Change release stability to "beta" and capitalize "RC" in release version in package.xml diff --git a/htdocs/includes/firephp/firephp-core/workspace/lib/project.js b/htdocs/includes/firephp/firephp-core/workspace/lib/project.js new file mode 100644 index 00000000000..913c6d7c60f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/lib/project.js @@ -0,0 +1,5 @@ + +exports.main = function(options) +{ + +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/package.json b/htdocs/includes/firephp/firephp-core/workspace/package.json new file mode 100644 index 00000000000..19e8385ee6f --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/package.json @@ -0,0 +1,28 @@ +{ + "name": "firephp-core", + "engine": [ + "node" + ], + "main": "lib/project.js", + "scripts": { + "build": { + "location": "./", + "module": "/scripts/build.js" + }, + "publish": { + "location": "./", + "module": "/scripts/publish.js" + } + }, + "mappings": { + "nodejs": { + "id": "nodejs.org/" + }, + "pinf": { + "id": "pinf.org/loader/" + }, + "modules": { + "id": "github.com/pinf/modules-js/" + } + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/program.json b/htdocs/includes/firephp/firephp-core/workspace/program.json new file mode 100644 index 00000000000..9628b525c6c --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/program.json @@ -0,0 +1,78 @@ +{ + "boot": "workspace", + "engine": [ + "node" + ], + "packages": { + "workspace": { + "locator": { + "location": "./" + } + }, + "nodejs.org/": { + "provider": "nodejs.org/" + }, + "pinf.org/loader/": { + "provider": "pinf.org/loader/" + }, + "github.com/pinf/modules-js/": { + "locator": { + "archive": "https://github.com/pinf/modules-js/zipball/master" + } + }, + "github.com/kriskowal/q/": { + "locator": { + "archive": "https://github.com/kriskowal/q/zipball/v0.3.0" + }, + "descriptor": { + "uid": "https://github.com/kriskowal/q/", + "dependencies": [ + { + "id": "github.com/pinf/modules-js/" + } + ] + } + }, + "private-registry.appspot.com/cadorn.com/github/com.cadorn.baby/projects/sourcemint/packages/client-js/": { + "locator": { + "archive": "https://github.com/cadorn/com.cadorn.baby/zipball/master", + "path": "projects/sourcemint/packages/client-js" + } + }, + "github.com/cadorn/aws-lib/": { + "locator": { + "archive": "https://github.com/cadorn/aws-lib/zipball/master" + }, + "descriptor": { + "uid": "https://github.com/cadorn/aws-lib/", + "native": true, + "dependencies": [ + { + "id": "registry.npmjs.org/sax/" + }, + { + "id": "registry.npmjs.org/xml2js/" + } + ] + } + }, + "registry.npmjs.org/sax/": { + "locator": { + "archive": "http://registry.npmjs.org/sax/-/sax-0.1.2.tgz" + }, + "descriptor": { + "uid": "http://registry.npmjs.org/sax/", + "native": true + } + }, + "registry.npmjs.org/xml2js/": { + "locator": { + "archive": "http://registry.npmjs.org/xml2js/-/xml2js-0.1.6.tgz" + }, + "descriptor": { + "uid": "http://registry.npmjs.org/xml2js/", + "native": true + } + } + } +} \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js b/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js new file mode 100644 index 00000000000..2481d99d381 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/scripts/build.js @@ -0,0 +1,164 @@ + +var FILE = require("modules/file"), + Q = require("modules/q"), + SYSTEM = require("modules/system"), + UTIL = require("modules/util"), + JSON = require("modules/json"); + + +var pkgPath = FILE.dirname(FILE.dirname(FILE.dirname(module.id))), + buildPath = pkgPath + "/build", + tplPath = pkgPath + "/workspace/tpl", + version = false; + +exports.getBuildPath = function() +{ + return buildPath; +} + +exports.main = function() +{ + + SYSTEM.exec("rm -Rf " + buildPath, function() + { + FILE.mkdirs(buildPath, 0775); + + SYSTEM.exec("git tag", function(stdout) + { + version = UTIL.trim(stdout).split("\n").pop().match(/^v(.*)$/)[1]; + + // TODO: Compare against version in `../../program.json ~ version` (ensure =) + + module.print("\0cyan(Building version: " + version + "\0)\n"); + + buildZipArchive(function() + { + buildPEARArchive(function() + { + done(); + }); + }); + }); + }); + + function done() + { + module.print("\0green(Done\0)\n"); + } +} + +function buildZipArchive(callback) +{ + var targetBasePath = buildPath + "/FirePHPCore-" + version; + + FILE.mkdirs(targetBasePath, 0775); + + SYSTEM.exec("rsync -r --copy-links --exclude \"- .DS_Store\" --exclude \"- .git/\" --exclude \"- .tmp_*\" " + pkgPath + "/lib " + targetBasePath, function() + { + replaceVariablesInFile(targetBasePath + "/lib/FirePHPCore/FirePHP.class.php"); + replaceVariablesInFile(targetBasePath + "/lib/FirePHPCore/FirePHP.class.php4"); + + SYSTEM.exec("cp -Rf " + pkgPath + "/examples " + targetBasePath, function() + { + next1(); + }); + }); + + function next1() + { + var content = FILE.read(tplPath + "/readme.tpl.md"); + content = content.replace(/%%VERSION%%/g, version); + FILE.write(targetBasePath + "/README.md", content); + + var content = FILE.read(tplPath + "/license.tpl.md"); + FILE.write(targetBasePath + "/LICENSE.md", content); + + FILE.write(buildPath + "/info.json", JSON.encode({ + version: version + })); + + next2(); + } + + function next2() + { + SYSTEM.exec("cd " + buildPath + " ; zip -vr FirePHPCore-" + version + ".zip FirePHPCore-" + version, function(stdout) + { + console.log(stdout); + + callback(); + }); + } +} + +function buildPEARArchive(callback) +{ + var targetBasePath = buildPath + "/pear"; + + FILE.mkdirs(targetBasePath, 0775); + + SYSTEM.exec("rsync -r --copy-links --exclude \"- .DS_Store\" --exclude \"- .git/\" --exclude \"- .tmp_*\" " + pkgPath + "/lib/FirePHPCore/* " + targetBasePath, function() + { + replaceVariablesInFile(targetBasePath + "/FirePHP.class.php"); + replaceVariablesInFile(targetBasePath + "/FirePHP.class.php4"); + + next1(); + }); + + function next1() + { + var content = FILE.read(tplPath + "/pear.package.tpl.xml"); + + var date = new Date(); + content = content.replace(/%%DATE%%/g, date.getFullYear() + "-" + UTIL.padBegin(date.getMonth()+1, 2, "0") + "-" + date.getDate()); + content = content.replace(/%%VERSION%%/g, version); + content = content.replace(/%%STABILITY%%/g, "stable"); + + FILE.write(targetBasePath + "/package.xml", content); + + next2(); + } + + function next2() + { + SYSTEM.exec("pear channel-discover pear.firephp.org", function(stdout) + { + console.log(stdout); + + SYSTEM.exec("cd " + targetBasePath + "; pear package package.xml", function(stdout) + { + console.log(stdout); + + callback(); + }); + }); + } +} + +function replaceVariablesInFile(path) +{ + var content = FILE.read(path); + + // @pinf replace '0.3' with '%%VERSION%%' + var re1 = /\n(.*)\/\/\s*@pinf\s(.*)\n/g; + var match1; + while (match1 = re1.exec(content)) { + var rule = match1[2].match(/^replace (.*?) with (.*)$/); + if(rule) { + // replace variables in rule + var re2 = /%%([^%]*)%%/g; + var match2; + while (match2 = re2.exec(rule[2])) { + var value; + if(match2[1]=="VERSION") { + value = version; + } + rule[2] = rule[2].replace(match2[0], value); + } + match1[1] = match1[1].replace(rule[1], rule[2]); + content = content.replace(match1[0], "\n"+match1[1]+"\n"); + } + } + + FILE.write(path, content); +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js b/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js new file mode 100644 index 00000000000..39106e1b3b3 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/scripts/publish.js @@ -0,0 +1,65 @@ + +var PINF_LOADER = require("pinf/loader"), + SANDBOX = PINF_LOADER.getSandbox(), + FILE = require("modules/file"), + Q = require("modules/q"), + SYSTEM = require("modules/system"), + BUILD = require("./build"), + JSON = require("modules/json"), + SOURCEMINT_CLIENT = false; + +exports.main = function() +{ + module.load({ + id: "private-registry.appspot.com/cadorn.com/github/com.cadorn.baby/projects/sourcemint/packages/client-js/", + descriptor: { + main: "lib/client.js" + } + }, function(id) + { + SOURCEMINT_CLIENT = require(id); + + publish(); + }); +} + +function publish() +{ + var buildPath = BUILD.getBuildPath(), + info = JSON.decode(FILE.read(buildPath + "/info.json")), + descriptor = JSON.decode(FILE.read(FILE.dirname(FILE.dirname(FILE.dirname(module.id))) + "/package.json")); + + var bundles = {}; + bundles["firephp-core.zip"] = { + "type": "zip", + "options": { + "archivePath": buildPath + "/FirePHPCore-" + info.version + ".zip", + } + }; + + var packages = [ + { + "uid": descriptor.uid, + "stream": "stable", + "version": info.version, + "bundles": bundles + } + ]; + + try + { + Q.when(SOURCEMINT_CLIENT.publish(packages), function(info) + { + module.print("\0green(Published:\n"); + console.log(info); + module.print("\0)"); + }, function(e) + { + throw e; + }); + } + catch(e) + { + console.error("Error: " + e); + } +} diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md b/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md new file mode 100644 index 00000000000..1b0aaf26962 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/license.tpl.md @@ -0,0 +1,21 @@ +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml b/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml new file mode 100644 index 00000000000..b9f3d65a43d --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/pear.package.tpl.xml @@ -0,0 +1,61 @@ + + + + FirePHPCore + pear.firephp.org + Log variables from PHP to the browser (Firebug Console) + Handles all communication between the PHP code on the server and the client. Also implements all core FirePHP features. + + + Christoph Dorn + cadorn + christoph@christophdorn.com + yes + + + %%DATE%% + + %%VERSION%% + 0.3 + + + + %%STABILITY%% + stable + + + MIT + + No Notes + + + + + + + + + + + + + + + + + 4.0 + + + 1.4.5 + + + + + + + diff --git a/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md b/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md new file mode 100644 index 00000000000..01264662e85 --- /dev/null +++ b/htdocs/includes/firephp/firephp-core/workspace/tpl/readme.tpl.md @@ -0,0 +1,17 @@ +FirePHPCore Server Library +========================== + +Status: stable + +Version: [%%VERSION%%](https://github.com/firephp/firephp-core/tree/v%%VERSION%%) + +This archive contains the *FirePHPCore* PHP server library. + +Links +----- + + * Documentation: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/ + * Install: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/Configuration/Traditional + * Support: http://docs.sourcemint.org/firephp.org/firephp/1/-docs/OpenSource#support + * Author: [Christoph Dorn](http://www.christophdorn.com/) + * License: [MIT License](http://www.opensource.org/licenses/mit-license.php) diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore b/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore new file mode 100644 index 00000000000..5e9bd942345 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore @@ -0,0 +1,9 @@ +vendor/ +nbproject/ +/*.buildpath +/*.project +/.settings +/error.log +/export/nicejson +.idea/ +*.iml \ No newline at end of file diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/.php_cs b/htdocs/includes/mobiledetect/mobiledetectlib/.php_cs new file mode 100644 index 00000000000..336ef0c87d4 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/.php_cs @@ -0,0 +1,24 @@ +notName('LICENSE') + ->notName('README.md') + ->notName('.php_cs') + ->notName('composer.*') + ->notName('phpunit.xml*') + ->notName('*.phar') + ->exclude('vendor') + ->exclude('examples') + ->exclude('Symfony/CS/Tests/Fixer') + ->notName('ElseifFixer.php') + ->exclude('data') + ->in(__DIR__) +; + +return Symfony\CS\Config\Config::create() + ->finder($finder) +; + + diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml b/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml new file mode 100644 index 00000000000..7c5ebf36c2a --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml @@ -0,0 +1,14 @@ +language: php +php: + - "5.2" + - "hhvm" + +branches: + only: + - devel + +script: + - phpunit --configuration tests/phpunit.xml + +notifications: + email: false diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt b/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt new file mode 100644 index 00000000000..101abf8be5f --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt @@ -0,0 +1,48 @@ +MIT License + +Copyright (c) <2011-2014> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Developer’s Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json new file mode 100644 index 00000000000..7d61f6f9dee --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json @@ -0,0 +1,189 @@ +{ + "version": "2.8.3", + "headerMatch": { + "HTTP_ACCEPT": { + "matches": [ + "application\/x-obml2d", + "application\/vnd.rim.html", + "text\/vnd.wap.wml", + "application\/vnd.wap.xhtml+xml" + ] + }, + "HTTP_X_WAP_PROFILE": null, + "HTTP_X_WAP_CLIENTID": null, + "HTTP_WAP_CONNECTION": null, + "HTTP_PROFILE": null, + "HTTP_X_OPERAMINI_PHONE_UA": null, + "HTTP_X_NOKIA_GATEWAY_ID": null, + "HTTP_X_ORANGE_ID": null, + "HTTP_X_VODAFONE_3GPDPCONTEXT": null, + "HTTP_X_HUAWEI_USERID": null, + "HTTP_UA_OS": null, + "HTTP_X_MOBILE_GATEWAY": null, + "HTTP_X_ATT_DEVICEID": null, + "HTTP_UA_CPU": { + "matches": [ + "ARM" + ] + } + }, + "uaHttpHeaders": [ + "HTTP_USER_AGENT", + "HTTP_X_OPERAMINI_PHONE_UA", + "HTTP_X_DEVICE_USER_AGENT", + "HTTP_X_ORIGINAL_USER_AGENT", + "HTTP_X_SKYFIRE_PHONE", + "HTTP_X_BOLT_PHONE_UA", + "HTTP_DEVICE_STOCK_UA", + "HTTP_X_UCBROWSER_DEVICE_UA" + ], + "uaMatch": { + "phones": { + "iPhone": "\\biPhone.*(Mobile|PhoneGap)|\\biPod", + "BlackBerry": "BlackBerry|\\bBB10\\b|rim[0-9]+", + "HTC": "HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m", + "Nexus": "Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile", + "Dell": "Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b", + "Motorola": "Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925", + "Samsung": "Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E", + "LG": "\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)", + "Sony": "SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i", + "Asus": "Asus.*Galaxy|PadFone.*Mobile", + "Micromax": "Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b", + "Palm": "PalmSource|Palm", + "Vertu": "Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature", + "Pantech": "PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790", + "Fly": "IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250", + "iMobile": "i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)", + "SimValley": "\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b", + "GenericPhone": "Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser" + }, + "tablets": { + "iPad": "iPad|iPad.*Mobile", + "NexusTablet": "Android.*Nexus[\\s]+(7|10)|^.*Android.*Nexus(?:(?!Mobile).)*$", + "SamsungTablet": "SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705C|SM-T535|SM-T331", + "Kindle": "Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE)\\b", + "SurfaceTablet": "Windows NT [0-9.]+; ARM;", + "HPTablet": "HP Slate 7|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8", + "AsusTablet": "^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|TX201LA", + "BlackBerryTablet": "PlayBook|RIM Tablet", + "HTCtablet": "HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200", + "MotorolaTablet": "xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617", + "NookTablet": "Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2", + "AcerTablet": "Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-830)\\b|W3-810|\\bA3-A10\\b", + "ToshibaTablet": "Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO", + "LGTablet": "\\bL-06C|LG-V900|LG-V500|LG-V909|LG-V500|LG-V510|LG-VK810\\b", + "FujitsuTablet": "Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b", + "PrestigioTablet": "PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD", + "LenovoTablet": "IdeaTab|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A1000|A2107|A2109|A1107|B6000|B8000|B8080-F)", + "YarvikTablet": "Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b", + "MedionTablet": "Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB", + "ArnovaTablet": "AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT", + "IntensoTablet": "INM8002KP|INM1010FP|INM805ND|Intenso Tab", + "IRUTablet": "M702pro", + "MegafonTablet": "MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b", + "EbodaTablet": "E-Boda (Supreme|Impresspeed|Izzycomm|Essential)", + "AllViewTablet": "Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)", + "ArchosTablet": "\\b(101G9|80G9|A101IT)\\b|Qilive 97R|ARCHOS 101G10|Archos 101 Neon", + "AinolTablet": "NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark", + "SonyTablet": "Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551", + "CubeTablet": "Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT", + "CobyTablet": "MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010", + "MIDTablet": "M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733", + "SMiTTablet": "Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)", + "RockChipTablet": "Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A", + "FlyTablet": "IQ310|Fly Vision", + "bqTablet": "bq.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant)|Maxwell.*Lite|Maxwell.*Plus", + "HuaweiTablet": "MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim", + "NecTablet": "\\bN-06D|\\bN-08D", + "PantechTablet": "Pantech.*P4100", + "BronchoTablet": "Broncho.*(N701|N708|N802|a710)", + "VersusTablet": "TOUCHPAD.*[78910]|\\bTOUCHTAB\\b", + "ZyncTablet": "z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900", + "PositivoTablet": "TB07STA|TB10STA|TB07FTA|TB10FTA", + "NabiTablet": "Android.*\\bNabi", + "KoboTablet": "Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build", + "DanewTablet": "DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b", + "TexetTablet": "NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE", + "PlaystationTablet": "Playstation.*(Portable|Vita)", + "TrekstorTablet": "ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A", + "PyleAudioTablet": "\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b", + "AdvanTablet": "Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ", + "DanyTechTablet": "Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1", + "GalapadTablet": "Android.*\\bG1\\b", + "MicromaxTablet": "Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b", + "KarbonnTablet": "Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b", + "AllFineTablet": "Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide", + "PROSCANTablet": "\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b", + "YONESTablet": "BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026", + "ChangJiaTablet": "TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503", + "GUTablet": "TX-A1301|TX-M9002|Q702|kf026", + "PointOfViewTablet": "TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10", + "OvermaxTablet": "OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)", + "HCLTablet": "HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync", + "DPSTablet": "DPS Dream 9|DPS Dual 7", + "VistureTablet": "V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10", + "CrestaTablet": "CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989", + "MediatekTablet": "\\bMT8125|MT8389|MT8135|MT8377\\b", + "ConcordeTablet": "Concorde([ ]+)?Tab|ConCorde ReadMan", + "GoCleverTablet": "GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042", + "ModecomTablet": "FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003", + "VoninoTablet": "\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b", + "ECSTablet": "V07OT2|TM105A|S10OT1|TR10CS1", + "StorexTablet": "eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab", + "VodafoneTablet": "SmartTab([ ]+)?[0-9]+|SmartTabII10", + "EssentielBTablet": "Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2", + "RossMoorTablet": "RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711", + "iMobileTablet": "i-mobile i-note", + "TolinoTablet": "tolino tab [0-9.]+|tolino shine", + "AudioSonicTablet": "\\bC-22Q|T7-QC|T-17B|T-17P\\b", + "AMPETablet": "Android.* A78 ", + "SkkTablet": "Android.* (SKYPAD|PHOENIX|CYCLOPS)", + "TecnoTablet": "TECNO P9", + "JXDTablet": "Android.*\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b", + "iJoyTablet": "Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)", + "FX2Tablet": "FX2 PAD7|FX2 PAD10", + "XoroTablet": "KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151", + "ViewsonicTablet": "ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a", + "OdysTablet": "LOOX|XENO10|ODYS Space", + "CaptivaTablet": "CAPTIVA PAD", + "IconbitTablet": "NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S", + "Hudl": "Hudl HT7S3", + "TelstraTablet": "T-Hub2", + "GenericTablet": "Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4" + }, + "browsers": { + "Chrome": "\\bCrMo\\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?", + "Dolfin": "\\bDolfin\\b", + "Opera": "Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+", + "Skyfire": "Skyfire", + "IE": "IEMobile|MSIEMobile", + "Firefox": "fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile", + "Bolt": "bolt", + "TeaShark": "teashark", + "Blazer": "Blazer", + "Safari": "Version.*Mobile.*Safari|Safari.*Mobile", + "Tizen": "Tizen", + "UCBrowser": "UC.*Browser|UCWEB", + "DiigoBrowser": "DiigoBrowser", + "Puffin": "Puffin", + "Mercury": "\\bMercury\\b", + "GenericBrowser": "NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger" + }, + "os": { + "AndroidOS": "Android", + "BlackBerryOS": "blackberry|\\bBB10\\b|rim tablet os", + "PalmOS": "PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino", + "SymbianOS": "Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b", + "WindowsMobileOS": "Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;", + "WindowsPhoneOS": "Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7", + "iOS": "\\biPhone.*Mobile|\\biPod|\\biPad", + "MeeGoOS": "MeeGo", + "MaemoOS": "Maemo", + "JavaOS": "J2ME\/|\\bMIDP\\b|\\bCLDC\\b", + "webOS": "webOS|hpwOS", + "badaOS": "\\bBada\\b", + "BREWOS": "BREW" + } + } +} \ No newline at end of file diff --git a/htdocs/includes/mobiledetect/mobiledetect.class.php b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php similarity index 94% rename from htdocs/includes/mobiledetect/mobiledetect.class.php rename to htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php index b04e0e98c91..b6eb0da21b3 100644 --- a/htdocs/includes/mobiledetect/mobiledetect.class.php +++ b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php @@ -23,10 +23,7 @@ * @version 2.8.3 */ -/** - * Class to manage detection of type of terminal (classic, tablet, mobile) - */ -class MobileDetect +class Mobile_Detect { /** * Mobile detection type. @@ -155,7 +152,7 @@ class MobileDetect 'Asus' => 'Asus.*Galaxy|PadFone.*Mobile', // @ref: http://www.micromaxinfo.com/mobiles/smartphones // Added because the codes might conflict with Acer Tablets. - 'Micromax' => 'Micromax.*\bA\d+\b', + 'Micromax' => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b', 'Palm' => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ; @todo - complete the regex. 'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;) // @ref: http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH) @@ -179,7 +176,7 @@ class MobileDetect protected static $tabletDevices = array( 'iPad' => 'iPad|iPad.*Mobile', // @todo: check for mobile friendly emails topic. 'NexusTablet' => 'Android.*Nexus[\s]+(7|10)|^.*Android.*Nexus(?:(?!Mobile).)*$', - 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P\d+|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-N8000|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-N8010|GT-N8005|GT-N8020|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|SM-T\d+|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-P6000|SM-T3100|SGH-I467|XE500|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|XE500T1C|SM-P605V|SM-P905V|SM-P600X|SM-P900X', // SCH-P709|SCH-P729|SM-T2558 - Samsung Mega - treat them like a regular phone. + 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705C|SM-T535|SM-T331', // SCH-P709|SCH-P729|SM-T2558 - Samsung Mega - treat them like a regular phone. // @reference: http://www.labnol.org/software/kindle-user-agent-string/20378/ 'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE)\b', // Only the Surface tablets with Windows RT are considered mobile. @@ -551,8 +548,10 @@ class MobileDetect * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT * from the $headers array instead. */ - public function __construct(array $headers = null, $userAgent = null) - { + public function __construct( + array $headers = null, + $userAgent = null + ){ $this->setHttpHeaders($headers); $this->setUserAgent($userAgent); } @@ -573,9 +572,8 @@ class MobileDetect /** * Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers. * - * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract - * the headers. The default null is left for backwards compatibilty. - * @return void + * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract + * the headers. The default null is left for backwards compatibilty. */ public function setHttpHeaders($httpHeaders = null) { @@ -637,11 +635,6 @@ class MobileDetect return null; } - /** - * getMobileHeaders - * - * @return string mobile Headers - */ public function getMobileHeaders() { return self::$mobileHeaders; @@ -687,7 +680,7 @@ class MobileDetect /** * Retrieve the User-Agent. * - * @return string The user agent if it's set. + * @return string|null The user agent if it's set. */ public function getUserAgent() { @@ -698,11 +691,10 @@ class MobileDetect * Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or * self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set. * - * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default - * parameter is null which will default to self::DETECTION_TYPE_MOBILE. - * @return void - * * @deprecated since version 2.6.9 + * + * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default + * parameter is null which will default to self::DETECTION_TYPE_MOBILE. */ public function setDetectionType($type = null) { @@ -877,12 +869,11 @@ class MobileDetect /** * Magic overloading method. * - * @param string $name Name - * @param array $arguments Arguments - * @return null|boolean - * - * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is' * @method boolean is[...]() + * @param string $name + * @param array $arguments + * @return mixed + * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is' */ public function __call($name, $arguments) { @@ -924,9 +915,9 @@ class MobileDetect * If the key is found the try to match the corresponding * regex agains the User-Agent. * - * @param string $key Key - * @param string $userAgent deprecated - * @return null|boolean + * @param string $key + * @param null $userAgent deprecated + * @return mixed */ protected function matchUAAgainstKey($key, $userAgent = null) { @@ -950,9 +941,8 @@ class MobileDetect /** * Check if the device is mobile. * Returns true if any type of mobile device detected, including special ones - * - * @param string $userAgent deprecated - * @param string $httpHeaders deprecated + * @param null $userAgent deprecated + * @param null $httpHeaders deprecated * @return bool */ public function isMobile($userAgent = null, $httpHeaders = null) @@ -968,15 +958,10 @@ class MobileDetect $this->setDetectionType(self::DETECTION_TYPE_MOBILE); - if ($this->checkHttpHeadersForMobile()) - { - //print "Found it's a mobile from http header"; + if ($this->checkHttpHeadersForMobile()) { return true; - } - else - { - //print "Check into user agent ".$this->getUserAgent(); - return $this->matchDetectionRulesAgainstUA(); + } else { + return $this->matchDetectionRulesAgainstUA(); } } @@ -1005,13 +990,12 @@ class MobileDetect /** * This method checks for a certain property in the * userAgent. - * - * @param string $key key - * @param string $userAgent deprecated - * @param string $httpHeaders deprecated - * @return null|boolean - * * @todo: The httpHeaders part is not yet used. + * + * @param string $key + * @param string $userAgent deprecated + * @param string $httpHeaders deprecated + * @return bool|int|null */ public function is($key, $userAgent = null, $httpHeaders = null) { @@ -1034,12 +1018,13 @@ class MobileDetect * because of the diversity of devices, vendors and * their conventions in representing the User-Agent or * the HTTP headers. + * * This method will be used to check custom regexes against * the User-Agent string. * - * @param string $regex Regex - * @param string $userAgent User agent - * @return bool + * @param $regex + * @param string $userAgent + * @return bool * * @todo: search in the HTTP headers too. */ @@ -1064,10 +1049,11 @@ class MobileDetect /** * Prepare the version number. * - * @param string $ver The string version, like "2.6.21.2152"; - * @return float - * * @todo Remove the error supression from str_replace() call. + * + * @param string $ver The string version, like "2.6.21.2152"; + * + * @return float */ public function prepareVersionNo($ver) { @@ -1083,37 +1069,39 @@ class MobileDetect /** * Check the version of the given property in the User-Agent. - * Will return a string or float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31) + * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31) * - * @param string $propertyName The name of the property. See self::getProperties() array keys for all possible properties (Ex: 'iPad', 'Android', ...). - * @param string $type Either self::VERSION_TYPE_STRING to get a string value or - * self::VERSION_TYPE_FLOAT indicating a float value. This parameter - * is optional and defaults to self::VERSION_TYPE_STRING. Passing an - * invalid parameter will default to this type as well. + * @param string $propertyName The name of the property. See self::getProperties() array + * keys for all possible properties. + * @param string $type Either self::VERSION_TYPE_STRING to get a string value or + * self::VERSION_TYPE_FLOAT indicating a float value. This parameter + * is optional and defaults to self::VERSION_TYPE_STRING. Passing an + * invalid parameter will default to the this type as well. * - * @return string|float|boolean The version of the property we are trying to extract. + * @return string|float The version of the property we are trying to extract. */ public function version($propertyName, $type = self::VERSION_TYPE_STRING) { - if (empty($propertyName)) return false; + if (empty($propertyName)) { + return false; + } //set the $type to the default if we don't recognize the type - if ($type != self::VERSION_TYPE_STRING && $type != self::VERSION_TYPE_FLOAT) - { + if ($type != self::VERSION_TYPE_STRING && $type != self::VERSION_TYPE_FLOAT) { $type = self::VERSION_TYPE_STRING; } $properties = self::getProperties(); // Check if the property exists in the properties array. - if (array_key_exists($propertyName, $properties)) - { + if (array_key_exists($propertyName, $properties)) { + // Prepare the pattern to be matched. // Make sure we always deal with an array (string is converted). $properties[$propertyName] = (array) $properties[$propertyName]; - foreach ($properties[$propertyName] as $propertyMatchString) - { + foreach ($properties[$propertyName] as $propertyMatchString) { + $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString); // Escape the special character which is the delimiter. @@ -1122,13 +1110,14 @@ class MobileDetect // Identify and extract the version. preg_match('/'.$propertyPattern.'/is', $this->userAgent, $match); - if (!empty($match[1])) - { + if (!empty($match[1])) { $version = ( $type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1] ); return $version; } + } + } return false; @@ -1137,7 +1126,7 @@ class MobileDetect /** * Retrieve the mobile grading, using self::MOBILE_GRADE_* constants. * - * @return string One of the self::MOBILE_GRADE_* constants. + * @return string One of the self::MOBILE_GRADE_* constants. */ public function mobileGrade() { @@ -1217,8 +1206,7 @@ class MobileDetect // @reference: http://my.opera.com/community/openweb/idopera/ $this->version('Opera', self::VERSION_TYPE_FLOAT)>=10 && !$isMobile - ) - { + ){ return self::MOBILE_GRADE_A; } @@ -1239,8 +1227,7 @@ class MobileDetect // @todo: report this (tested on Nokia N71) $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT)>=11 && $this->is('SymbianOS') - ) - { + ){ return self::MOBILE_GRADE_B; } @@ -1250,8 +1237,7 @@ class MobileDetect // Windows Mobile - Tested on the HTC Leo (WinMo 5.2) $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT)<=5.2 - ) - { + ){ return self::MOBILE_GRADE_C; } diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/README.md b/htdocs/includes/mobiledetect/mobiledetectlib/README.md new file mode 100644 index 00000000000..acc861a1927 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/README.md @@ -0,0 +1,191 @@ + + +> Motto: "Every business should have a mobile detection script to detect mobile readers." + +Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). +It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment. + +Nowadays web site/app content strategy matters, this is why you need all the tools to deliver the best and the fastest experience for the small screens. Mobile_Detect class is a [server-side detection](http://www.w3.org/TR/mwabp/#bp-devcap-detection) tool, it is not a replacement for Responsive Web Design (media queries) or other forms of client-side feature detection. + +We're commited to make Mobile_Detect the best open-source mobile detection resource and this is why before each release we're running [unit tests](./tests), we also research and update the detection rules on daily and weekly basis. + +

    +
    +Thanks ImpressPages CMS for showing us some love!

    + + + +##### Download and demo + +Latest releases, Latest dev branch, composer package + +See also: :bulb: Become a contributor / :coffee: History / :point_right: Code examples / +:iphone: Live demo! (point your device browser to this URL) + +##### Help + +Click here to lend your support to: Research and development of Mobile Detect library! + + +I'm currently paying for hosting and spend a lot of my family time :family: to maintain the project and planning the future releases. +I would highly appreciate any money donations that will keep the research going. + +Special thanks to the community :+1: for donations, [BrowserStack](http://browserstack.com) - for providing access to their great platform, [Zend](http://zend.com) - for donating licenses, [Dragos Gavrila](https://twitter.com/grafician) who contributed with the logo. + +##### 3rd party modules / [Submit new](https://github.com/serbanghita/Mobile-Detect/issues/new?title=New%203rd%20party%20module&body=Name, Link and Description of the module.) + +:point_right: Keep `Mobile_Detect.php` class in a separate `module` and do NOT include it in your script core because of the high frequency of updates. +:point_right: When including the class into you `web application` or `module` always use `include_once '../path/to/Mobile_Detect.php` to prevent conflicts. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Varnish Cache

    Varnish Mobile Detect - Drop-in varnish solution to mobile user detection based on the Mobile-Detect library. Made by willemk

    WordPress +

    WordPress Mobile Detect - Gives you the ability to wrap that infographic in a [notdevice][/notdevice] shortcode so at the server level WordPress will decide to show that content only if the user is NOT on a phone or tablet. Made by Jesse Friedman.

    + +

    mobble - provides mobile related conditional functions for your site. e.g. is_iphone(), is_mobile() and is_tablet(). Made by Scott Evans.

    + +

    WordPress Responsage - A small WordPress theme plugin that allows you to make your images responsive. Made by Adrian Ciaschetti.

    + +

    Social PopUP - This plugin will display a popup or splash screen when a new user visit your site showing a Google+, Twitter and Facebook follow links. It uses Mobile_Detect to detect mobile devices.

    +
    Drupal +

    Drupal Mobile Switch - The Mobile Switch Drupal module provides a automatic theme switch functionality for mobile devices, + detected by Browscap or Mobile Detect. Made by Siegfried Neumann.

    + +

    Drupal Context Mobile Detect - This is a Drupal context module which integrates Context and PHP Mobile Detect library. + Created by Artem Shymko.

    + +

    Drupal Mobile Detect - Lightweight mobile detect module for Drupal created by Matthew Donadio

    +
    Joomla

    yagendoo Joomla! Mobile Detection Plugin - Lightweight PHP plugin for Joomla! that detects a mobile browser using the Mobile Detect class. Made by yagendoo media.

    Magento

    Magento - This Magento helper from Optimise Web enables the use of all functions provided by MobileDetect.net. + Made by Kathir Vel.

    PrestaShop

    PrestaShop is a free, secure and open source shopping cart platform. Mobile_Detect is included in the default package since 1.5.x.

    Zend Framework +

    ZF2 Mobile-Detect - Zend Framework 2 module that provides Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers). Made by neilime

    + +

    ZF2 MobileDetectModule - Facilitates integration of a PHP MobileDetect class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module, but differs in initialization and provision routine of the actual Mobile_Detect class. Appropriate view helper and controller plugin also have different conceptions. Made by Nikola Posa

    +
    Symfony

    Symfony2 Mobile Detect Bundle - The bundle for detecting mobile devices, manage mobile view and redirect to the mobile and tablet version. + Made by Nikolay Ivlev.

    +

    Silex Mobile Detect Service Provider - Silex service provider to interact with Mobile detect class methods. Made by Lhassan Baazzi.

    +
    Laravel +

    Laravel-Agent a user agent class for Laravel, based on Mobile Detect with some additional functionality. Made by Jens Segers.

    +

    BrowserDetectis a browser & mobile detection package, collects and wrap together the best user-agent identifiers for Laravel. Created by Varga Zsolt.

    +
    ExpressionEngine

    EE2 Detect Mobile - Lightweight PHP plugin for EE2 that detects a mobile browser using the Mobile Detect class. Made by Gareth Davies.

    Yii Framework

    Yii Extension - Mobile detect plugin for Yii framework. Made by Alexey Salnikov.

    CakePHP

    CakePHP MobileDetect - plugin component for CakePHP 2.x. Made by Gregory Gaskill

    FuelPHPSpecial Agent is a FuelPHP package which uses php-mobile-detect to determine whether a device is mobile or not. +It overrides the Fuelphp Agent class its methods. Made by Robbie Bardjin.
    Typo3px_mobiledetect is an extension that helps to detect visitor's mobile device class (if that’s tablet or mobile device like smartphone). Made by Alexander Tretyak.
    Statamic

    Statamic CMS Mobile Detect - plugin. Made by Sergei Filippov of Haiku Lab.

    mobile-detect.js

    A JavaScript port of Mobile-Detect class. Made by Heinrich Goebl

    python

    pymobiledetect - Mobile detect python package. Made by Bas van Oostveen.

    GoMobileDetect

    GoMobileDetect - Go port of Mobile Detect class. Made by Shaked.

    MemHT

    MemHT is a Free PHP CMS and Blog that permit the creation and the management online of websites with few and easy steps. Has the class included in the core.

    concrete5

    concrete5 is a CMS that is free and open source. The library is included in the core.

    engine7

    ExEngine 7 PHP Open Source Framework. The Mobile_Detect class is included in the engine.

    Zikula

    Zikula is a free and open-source Content Management Framework, which allows you to run impressive websites and build powerful online applications. The core uses Mobile-Detect to switch to a special Mobile theme, using jQueryMobile

    UserAgentInfo

    UserAgentInfo is a PHP class for parsing user agent strings (HTTP_USER_AGENT). Includes mobile checks, bot checks, browser types/versions and more. +Based on browscap, Mobile_Detect and ua-parser. Created for high traffic websites and fast batch processing. Made by quentin389

    Craft CMS

    LJ Mobile Detect is a simple implementation of Mobile Detect for Craft CMS. Made by Lewis Jenkins

    diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/composer.json b/htdocs/includes/mobiledetect/mobiledetectlib/composer.json new file mode 100644 index 00000000000..0131e4937ec --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/composer.json @@ -0,0 +1,28 @@ +{ + "name": "mobiledetect/mobiledetectlib", + "type": "library", + "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.", + "keywords": ["mobile", "mobile detect", "mobile detector", "php mobile detect", "detect mobile devices"], + "homepage": "https://github.com/serbanghita/Mobile-Detect", + "license": "MIT", + "authors": [ + { + "name": "Serban Ghita", + "email": "serbanghita@gmail.com", + "homepage": "http://mobiledetect.net", + "role": "Developer" + } + ], + "require": { + "php": ">=5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "autoload": { + "classmap": ["Mobile_Detect.php"], + "psr-0": { + "Detection": "namespaced/" + } + } +} diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock b/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock new file mode 100644 index 00000000000..2b214625190 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock @@ -0,0 +1,439 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" + ], + "hash": "5b2d87ea9e6c115194bd355b7b697cec", + "packages": [ + + ], + "packages-dev": [ + { + "name": "phpunit/php-code-coverage", + "version": "1.2.12", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "1.2.12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12", + "reference": "1.2.12", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": ">=1.3.0@stable", + "phpunit/php-text-template": ">=1.1.1@stable", + "phpunit/php-token-stream": ">=1.1.3@stable" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*@dev" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.0.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2013-07-06 06:26:16" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.3.3", + "source": { + "type": "git", + "url": "git://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "1.3.3" + }, + "dist": { + "type": "zip", + "url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3", + "reference": "1.3.3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "File/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "http://www.phpunit.de/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2012-10-11 04:44:38" + }, + { + "name": "phpunit/php-text-template", + "version": "1.1.4", + "source": { + "type": "git", + "url": "git://github.com/sebastianbergmann/php-text-template.git", + "reference": "1.1.4" + }, + "dist": { + "type": "zip", + "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4", + "reference": "1.1.4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "Text/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2012-10-31 11:15:28" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1.0.5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1.0.5", + "reference": "1.0.5", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2013-08-02 07:42:54" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "1.2.0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1.2.0", + "reference": "1.2.0", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2013-08-04 05:57:48" + }, + { + "name": "phpunit/phpunit", + "version": "3.7.23", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3.7.23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.23", + "reference": "3.7.23", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpunit/php-code-coverage": "~1.2.1", + "phpunit/php-file-iterator": ">=1.3.1", + "phpunit/php-text-template": ">=1.1.1", + "phpunit/php-timer": ">=1.0.4", + "phpunit/phpunit-mock-objects": "~1.2.0", + "symfony/yaml": "~2.0" + }, + "require-dev": { + "pear-pear/pear": "1.9.4" + }, + "suggest": { + "ext-json": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "phpunit/php-invoker": ">=1.1.0,<1.2.0" + }, + "bin": [ + "composer/bin/phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPUnit/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "", + "../../symfony/yaml/" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "http://www.phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2013-08-02 19:14:44" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "1.2.3", + "source": { + "type": "git", + "url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "1.2.3" + }, + "dist": { + "type": "zip", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip", + "reference": "1.2.3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-text-template": ">=1.1.1@stable" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "autoload": { + "classmap": [ + "PHPUnit/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2013-01-13 10:24:48" + }, + { + "name": "symfony/yaml", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Yaml", + "source": { + "type": "git", + "url": "https://github.com/symfony/Yaml.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Yaml\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "http://symfony.com", + "time": "2013-07-11 19:36:36" + } + ], + "aliases": [ + + ], + "minimum-stability": "stable", + "stability-flags": [ + + ], + "platform": { + "php": ">=5.0.0" + }, + "platform-dev": [ + + ] +} diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php b/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php new file mode 100644 index 00000000000..82fec6cdb3e --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php @@ -0,0 +1,258 @@ + + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * + */ + +require_once '../Mobile_Detect.php'; +$detect = new Mobile_Detect; +$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer'); +$scriptVersion = $detect->getScriptVersion(); + +?> + + + + + Mobile Detect Local Demo + + + + + + + + +
    +

    Mobile_Detect v.

    +

    The lightweight PHP class for detecting mobile devices.

    +
    + + +
    + +

    This is a . Your UA is

    + +

    Please help us improve the mobile detection by choosing the correct answer.
    + Before sending an answer double check if you are using the browser in 'Desktop mode'.
    + You can contribute by:
    + 1. forking the project
    + 2. submiting an issue
    + 3. sending us feedback below +

    + + +
    + Contribute + +

    Is your device really a ?

    + +

    +
    + +

    + +
    + + +
    + + + +
    +

    Supported methods

    + + + + + + + + + + + + + + + + + getRules() as $name => $regex): + $check = $detect->{'is'.$name}(); + ?> + + + + + + + + + + + getProperties() as $name => $match): + $check = $detect->version($name); + if($check!==false): + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Basic detection methods
    isMobile()isMobile(); if($check): ?>class="true">
    isTablet()isTablet(); if($check): ?>class="true">
    Custom detection methods
    is()class="true">
    Experimental version() method
    version()
    Other tests
    isiphone()isiphone()); ?>
    isIphone()isIphone()); ?>
    istablet()istablet()); ?>
    isIOS()isIOS()); ?>
    isWhateverYouWant()isWhateverYouWant()); ?>
    + +
    + + + diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/examples/session_example.php b/htdocs/includes/mobiledetect/mobiledetectlib/examples/session_example.php new file mode 100644 index 00000000000..ed74c588b3d --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/examples/session_example.php @@ -0,0 +1,146 @@ + + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * + */ + +// This is mandatory if you're using sessions. +session_start(); + +// It's mandatory to include the library. +require_once '../Mobile_Detect.php'; + +/** + * Begin helper functions. + */ + +// Your default site layouts. +// Update this array if you have fewer layout types. +function layoutTypes() +{ + return array('classic', 'mobile', 'tablet'); + +} + +function initLayoutType() +{ + // Safety check. + if (!class_exists('Mobile_Detect')) { return 'classic'; } + + $detect = new Mobile_Detect; + $isMobile = $detect->isMobile(); + $isTablet = $detect->isTablet(); + + $layoutTypes = layoutTypes(); + + // Set the layout type. + if ( isset($_GET['layoutType']) ) { + + $layoutType = $_GET['layoutType']; + + } else { + + if (empty($_SESSION['layoutType'])) { + + $layoutType = ($isMobile ? ($isTablet ? 'tablet' : 'mobile') : 'classic'); + + } else { + + $layoutType = $_SESSION['layoutType']; + + } + + } + + // Fallback. If everything fails choose classic layout. + if ( !in_array($layoutType, $layoutTypes) ) { $layoutType = 'classic'; } + + // Store the layout type for future use. + $_SESSION['layoutType'] = $layoutType; + + return $layoutType; + +} + +/** + * End helper functions. + */ + +// Let's roll. Call this function! +$layoutType = initLayoutType(); + +/** + * + * Example of layout switch links. + * Eg. ['Classic' | Mobile | 'Tablet'] + * + */ +?> + + + + +

    Demo page number one.

    +

    You can go to page two.

    +

    Showing you the version.

    +

    Note: When running this test using the same browser with multiple User-Agents, clear your cookies/session before each test.

    + + + + + + +

    Demo page number two.

    +

    You can go back to page one.

    +

    Showing you the version.

    + + + + + + + + + + + $detect->getScriptVersion(), + + // All headers that trigger 'isMobile' to be 'true', + // before reaching the User-Agent match detection. + 'headerMatch' => $detect->getMobileHeaders(), + + // All possible User-Agent headers. + 'uaHttpHeaders' => $detect->getUaHttpHeaders(), + + // All the regexes that trigger 'isMobile' or 'isTablet' + // to be true. + 'uaMatch' => array( + // If match is found, triggers 'isMobile' to be true. + 'phones' => $detect->getPhoneDevices(), + // Triggers 'isTablet' to be true. + 'tablets' => $detect->getTabletDevices(), + // If match is found, triggers 'isMobile' to be true. + 'browsers' => $detect->getBrowsers(), + // If match is found, triggers 'isMobile' to be true. + 'os' => $detect->getOperatingSystems() + ) + + ); + +$jsonString = function_exists('json_format') ? json_format($json) : json_encode($json); + +// Write the JSON file to disk. +// You can import this file in your app. +$fileName = dirname(__FILE__).'/../Mobile_Detect.json'; +$handle = fopen($fileName, 'w'); +$fwrite = fwrite($handle, $jsonString); +fclose($handle); + +if($fwrite){ + echo 'Done. Check '.realpath($fileName).' file.'; +} else { + echo 'Failed to write '.realpath($fileName).' to disk.'; +} \ No newline at end of file diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php b/htdocs/includes/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php new file mode 100644 index 00000000000..ca70fe80768 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php @@ -0,0 +1,22 @@ + + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * @link http://mobiledetect.net + */ +class BasicTest extends PHPUnit_Framework_TestCase +{ + /** + * @var Mobile_Detect + */ + protected $detect; + + public function testClassExists() + { + $this->assertTrue(class_exists('Mobile_Detect')); + } + + public function setUp() + { + $this->detect = new Mobile_Detect; + } + + public function testBasicMethods() + { + $this->assertNotEmpty( $this->detect->getScriptVersion() ); + + $this->detect->setHttpHeaders(array( + 'SERVER_SOFTWARE' => 'Apache/2.2.15 (Linux) Whatever/4.0 PHP/5.2.13', + 'REQUEST_METHOD' => 'POST', + 'HTTP_HOST' => 'home.ghita.org', + 'HTTP_X_REAL_IP' => '1.2.3.4', + 'HTTP_X_FORWARDED_FOR' => '1.2.3.5', + 'HTTP_CONNECTION' => 'close', + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25', + 'HTTP_ACCEPT' => 'text/vnd.wap.wml, application/json, text/javascript, */*; q=0.01', + 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5', + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate', + 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest', + 'HTTP_REFERER' => 'http://mobiledetect.net', + 'HTTP_PRAGMA' => 'no-cache', + 'HTTP_CACHE_CONTROL' => 'no-cache', + 'REMOTE_ADDR' => '11.22.33.44', + 'REQUEST_TIME' => '01-10-2012 07:57' + )); + + //12 because only 12 start with HTTP_ + $this->assertCount( 12, $this->detect->getHttpHeaders() ); + $this->assertTrue( $this->detect->checkHttpHeadersForMobile() ); + + $this->detect->setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25'); + $this->assertNotEmpty( $this->detect->getUserAgent() ); + + $this->assertTrue( $this->detect->isMobile() ); + $this->assertFalse( $this->detect->isTablet() ); + + $this->assertTrue( $this->detect->isIphone() ); + $this->assertTrue( $this->detect->isiphone() ); + $this->assertTrue( $this->detect->isiOS() ); + $this->assertTrue( $this->detect->isios() ); + $this->assertTrue( $this->detect->is('iphone') ); + $this->assertTrue( $this->detect->is('ios') ); + + } + + public function headersProvider() + { + return array( + array(array( + 'SERVER_SOFTWARE' => 'Apache/2.2.15 (Linux) Whatever/4.0 PHP/5.2.13', + 'REQUEST_METHOD' => 'POST', + 'HTTP_HOST' => 'home.ghita.org', + 'HTTP_X_REAL_IP' => '1.2.3.4', + 'HTTP_X_FORWARDED_FOR' => '1.2.3.5', + 'HTTP_CONNECTION' => 'close', + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25', + 'HTTP_ACCEPT' => 'text/vnd.wap.wml, application/json, text/javascript, */*; q=0.01', + 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5', + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate', + 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest', + 'HTTP_REFERER' => 'http://mobiledetect.net', + 'HTTP_PRAGMA' => 'no-cache', + 'HTTP_CACHE_CONTROL' => 'no-cache', + 'REMOTE_ADDR' => '11.22.33.44', + 'REQUEST_TIME' => '01-10-2012 07:57' + )), + array(array( + 'SERVER_SOFTWARE' => 'Rogue software', + 'REQUEST_METHOD' => 'GET', + 'REMOTE_ADDR' => '8.8.8.8', + 'REQUEST_TIME' => '07-10-2013 23:56', + 'HTTP_USER_AGENT' => "garbage/1.0" + )), + array(array( + 'SERVER_SOFTWARE' => 'Apache/1.3.17 (Linux) PHP/5.5.2', + 'REQUEST_METHOD' => 'HEAD', + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1', + 'REMOTE_ADDR' => '1.250.250.0', + 'REQUEST_TIME' => '06-12-2006 11:06' + )), + ); + } + + /** + * @dataProvider headersProvider + * @covers Mobile_Detect::getHttpHeader + */ + public function testConstructorInjection(array $headers) + { + $md = new Mobile_Detect($headers); + + foreach ($headers as $header => $value) { + if (substr($header, 0, 5) !== 'HTTP_') { + //make sure it wasn't set + $this->assertNull($md->getHttpHeader($value)); + } else { + //make sure it's equal + $this->assertEquals($value, $md->getHttpHeader($header)); + } + } + + //verify some of the headers work with the translated getter + $this->assertNull($md->getHttpHeader('Remote-Addr')); + $this->assertNull($md->getHttpHeader('Server-Software')); + $this->assertEquals($headers['HTTP_USER_AGENT'], $md->getHttpHeader('User-Agent')); + } + + /** + * @dataProvider headersProvider + * @covers Mobile_Detect::getHttpHeader + */ + public function testInvalidHeader($headers) + { + $md = new Mobile_Detect($headers); + $this->assertNull($md->getHttpHeader('garbage_is_Garbage')); + } + + public function userAgentProvider() + { + return array( + array(array( + 'HTTP_USER_AGENT' => 'blah' + ), 'blah'), + array(array( + 'HTTP_USER_AGENT' => 'iphone', + 'HTTP_X_OPERAMINI_PHONE_UA' => 'some other stuff' + ), 'iphone some other stuff'), + array(array( + 'HTTP_X_DEVICE_USER_AGENT' => 'hello world' + ), 'hello world'), + array(array(), null) + ); + } + + /** + * @dataProvider userAgentProvider + * @covers Mobile_Detect::setUserAgent, Mobile_Detect::getUserAgent + */ + public function testGetUserAgent($headers, $expectedUserAgent) + { + $md = new Mobile_Detect($headers); + $md->setUserAgent(); + $this->assertSame($expectedUserAgent, $md->getUserAgent()); + } + + /** + * Headers should be reset when you use setHttpHeaders. + * @covers Mobile_Detect::setHttpHeaders + * @issue #144 + */ + public function testSetHttpHeaders() + { + $header1 = array('HTTP_PINK_PONY' => 'I secretly love ponies >_>'); + $md = new Mobile_Detect($header1); + $this->assertSame($md->getHttpHeaders(), $header1); + + $header2 = array('HTTP_FIRE_BREATHING_DRAGON' => 'yeah!'); + $md->setHttpHeaders($header2); + $this->assertSame($md->getHttpHeaders(), $header2); + } + + /** + * @covers Mobile_Detect::setUserAgent, Mobile_Detect::getUserAgent + */ + public function testSetUserAgent() + { + $md = new Mobile_Detect(array()); + $md->setUserAgent('hello world'); + $this->assertSame('hello world', $md->getUserAgent()); + } + + /** + * @covers Mobile_Detect::setDetectionType + */ + public function testSetDetectionType() + { + $md = new Mobile_Detect(array()); + + $md->setDetectionType('bskdfjhs'); + $this->assertAttributeEquals( + Mobile_Detect::DETECTION_TYPE_MOBILE, + 'detectionType', + $md + ); + + $md->setDetectionType(); + $this->assertAttributeEquals( + Mobile_Detect::DETECTION_TYPE_MOBILE, + 'detectionType', + $md + ); + + $md->setDetectionType(Mobile_Detect::DETECTION_TYPE_MOBILE); + $this->assertAttributeEquals( + Mobile_Detect::DETECTION_TYPE_MOBILE, + 'detectionType', + $md + ); + + $md->setDetectionType(Mobile_Detect::DETECTION_TYPE_EXTENDED); + $this->assertAttributeEquals( + Mobile_Detect::DETECTION_TYPE_EXTENDED, + 'detectionType', + $md + ); + } + + //special headers that give 'quick' indication that a device is mobile + public function quickHeadersData() + { + return array( + array(array( + 'HTTP_ACCEPT' => 'application/json; q=0.2, application/x-obml2d; q=0.8, image/gif; q=0.99, */*' + )), + array(array( + 'HTTP_ACCEPT' => 'text/*; q=0.1, application/vnd.rim.html' + )), + array(array( + 'HTTP_ACCEPT' => 'text/vnd.wap.wml', + )), + array(array( + 'HTTP_ACCEPT' => 'application/vnd.wap.xhtml+xml', + )), + array(array( + 'HTTP_X_WAP_PROFILE' => 'hello', + )), + array(array( + 'HTTP_X_WAP_CLIENTID' => '' + )), + array(array( + 'HTTP_WAP_CONNECTION' => '' + )), + array(array( + 'HTTP_PROFILE' => '' + )), + array(array( + 'HTTP_X_OPERAMINI_PHONE_UA' => '' + )), + array(array( + 'HTTP_X_NOKIA_GATEWAY_ID' => '' + )), + array(array( + 'HTTP_X_ORANGE_ID' => '' + )), + array(array( + 'HTTP_X_VODAFONE_3GPDPCONTEXT' => '' + )), + array(array( + 'HTTP_X_HUAWEI_USERID' => '' + )), + array(array( + 'HTTP_UA_OS' => '' + )), + array(array( + 'HTTP_X_MOBILE_GATEWAY' => '' + )), + array(array( + 'HTTP_X_ATT_DEVICEID' => '' + )), + array(array( + 'HTTP_UA_CPU' => 'ARM' + )) + ); + } + + /** + * @dataProvider quickHeadersData + * @covers Mobile_Detect::checkHttpHeadersForMobile + */ + public function testQuickHeaders($headers) + { + $md = new Mobile_Detect($headers); + $this->assertTrue($md->checkHttpHeadersForMobile()); + } + + // Headers that are not mobile. + public function quickNonMobileHeadersData() + { + + return array( + array(array( + 'HTTP_UA_CPU' => 'AMD64' + )), + array(array( + 'HTTP_UA_CPU' => 'X86' + )), + array(array( + 'HTTP_ACCEPT' => 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01' + )), + array(array( + 'HTTP_REQUEST_METHOD' => 'DELETE' + )), + array(array( + 'HTTP_VIA' => '1.1 ws-proxy.stuff.co.il C0A800FA' + )), + ); + + } + + /** + * @dataProvider quickNonMobileHeadersData + * @covers Mobile_Detect::checkHttpHeadersForMobile + */ + public function testNonMobileQuickHeaders($headers) + { + $md = new Mobile_Detect($headers); + $this->assertFalse($md->checkHttpHeadersForMobile()); + } + + /** + * @expectedException BadMethodCallException + * @coversNothing + */ + public function testBadMethodCall() + { + $md = new Mobile_Detect(array()); + $md->badmethodthatdoesntexistatall(); + } + + public function versionDataProvider() + { + return array( + array( + 'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', + 'Android', + '4.0.4', + 4.04 + ), + array( + 'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', + 'Webkit', + '535.19', + 535.19 + ), + array( + 'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', + 'Chrome', + '18.0.1025.166', + 18.01025166 + ), + array( + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8', + 'BlackBerry', + '6.0.0.448', + 6.00448 + ), + array( + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8', + 'Webkit', + '534.8', + 534.8 + ), + array( + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+', + 'BlackBerry', + '6.0.0.546', + 6.00546 + ) + ); + } + + /** + * @dataProvider versionDataProvider + * @covers Mobile_Detect::version + */ + public function testVersionExtraction($userAgent, $property, $stringVersion, $floatVersion) + { + $md = new Mobile_Detect(array('HTTP_USER_AGENT' => $userAgent)); + $prop = $md->version($property); + + $this->assertSame($stringVersion, $prop); + + $prop = $md->version($property, 'float'); + $this->assertSame($floatVersion, $prop); + + //assert that garbage data is always === false + $prop = $md->version('garbage input is always garbage'); + $this->assertFalse($prop); + } + + /** + * @covers Mobile_Detect::getMobileDetectionRules + */ + public function testRules() + { + $md = new Mobile_Detect; + $count = array_sum(array( + count(Mobile_Detect::getPhoneDevices()), + count(Mobile_Detect::getTabletDevices()), + count(Mobile_Detect::getOperatingSystems()), + count(Mobile_Detect::getBrowsers()) + )); + $rules = $md->getRules(); + $this->assertEquals($count, count($rules)); + } + + /** + * @covers Mobile_Detect::getMobileDetectionRulesExtended + */ + public function testRulesExtended() + { + $md = new Mobile_Detect; + $count = array_sum(array( + count(Mobile_Detect::getPhoneDevices()), + count(Mobile_Detect::getTabletDevices()), + count(Mobile_Detect::getOperatingSystems()), + count(Mobile_Detect::getBrowsers()), + count(Mobile_Detect::getUtilities()) + )); + $md->setDetectionType(Mobile_Detect::DETECTION_TYPE_EXTENDED); + $rules = $md->getRules(); + $this->assertEquals($count, count($rules)); + } + + /** + * @covers Mobile_Detect::getScriptVersion + */ + public function testScriptVersion() + { + $v = Mobile_Detect::getScriptVersion(); + $formatCheck = (bool)preg_match('/^[0-9]+\.[0-9]+\.[0-9](-[a-zA-Z0-9])?$/', $v); + + $this->assertTrue($formatCheck, "Fails the semantic version test. The version " . var_export($v, true) + . ' does not match X.Y.Z pattern'); + } + + public function crazyVersionNumbers() + { + return array( + array('2.5.6', 2.56), + array('12142.2142.412521.24.152', 12142.214241252124152), + array('6_3', 6.3), + array('4_7 /7 7 12_9', 4.777129), + array('49', 49.0), + array('2.6.x', 2.6), + array('45.6.1.x.12', 45.61) + ); + } + + /** + * @dataProvider crazyVersionNumbers + * @covers Mobile_Detect::prepareVersionNo + */ + public function testPrepareVersionNo($raw, $expected) + { + $md = new Mobile_Detect; + $actual = $md->prepareVersionNo($raw); + $this->assertSame($expected, $actual, "We expected " . var_export($raw, true) . " to convert to " + . var_export($expected, true) . ', but got ' . var_export($actual, true) . ' instead'); + } +} diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php new file mode 100644 index 00000000000..dc87bfb2b14 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php @@ -0,0 +1,1220 @@ + + * + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * @link http://mobiledetect.net + * + * This file is updated weekly. + * You can contribute by adding new user agents and tests. + * + */ + +return array( + + 'Acer' => array( + 'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build/HTK55D) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; A110 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'IML74K'), 'model' => 'A200' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; A701 Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; B1-710 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; A3-A10 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.36', 'Chrome' => '32.0.1700.99')), + 'Mozilla/5.0 (Linux; Android 4.2.2; A1-830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + ), + + 'AdvanDigital' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Ainol' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; Novo10 Hero Build/20121115) AppleWebKit/535.19 (KHTML like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + 'AllFine' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'ASUS' => array( + 'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ), + 'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03L', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; Android 4.2.1; ME301T Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ), + 'Mozilla/5.0 (Linux; Android 4.2.1; ME173X Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ), + 'Mozilla/5.0 (Linux; Android 4.2.2; TF300T Build/JDQ39E) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39E') ), + ), + + 'Alcatel' => array( + 'Mozilla/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.5', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 918D' ), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.6', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 991' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build/ICECREAM) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'ICECREAM'), 'model' => 'ONE TOUCH 993D' ), + ), + + 'Allview' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.5.3.246/145/355' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'Amazon' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '528.5+', 'Kindle' => '3.0', 'Safari' => '4.0'), 'model' => 'Kindle' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Apple' => array( + 'iTunes/9.1.1' => array('isMobile' => false, 'isTablet' => false), + 'iTunes/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit/536.27.1' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A4449d Safari/9537.53' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '420+', 'Safari' => '3.0') ), + 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '3_0', 'Webkit' => '528.18', 'Safari' => '4.0'), 'model' => 'iPhone', 'mobileGrade' => 'B' ), + 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46', 'Mobile' => '9B206', 'Safari' => '5.1'), 'model' => 'iPhone' ), + 'Mozilla/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Mobile' => '10A403', 'Safari' => '6.0'), 'model' => 'iPod'), + 'Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9B206 Safari/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.80', 'Mobile' => '9B206'), 'model' => 'iPad' ), + 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A403'), 'model' => 'iPad' ), + 'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '4_2_1', 'Webkit' => '533.17.9', 'Safari' => '5.0.2', 'Mobile' => '8C148'), 'model' => 'iPad', 'mobileGrade' => 'B' ), + 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '3_2', 'Webkit' => '531.21.10', 'Safari' => '4.0.4', 'Mobile' => '7B334b'), 'model' => 'iPad', 'mobileGrade' => 'B' ), + 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.82', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ), + 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ), + 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B142 Safari/8536.25' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1', 'Webkit' => '536.26', 'Chrome' => '23.0.1271.100', 'Mobile' => '10B142'), 'model' => 'iPhone', 'mobileGrade' => 'A' ), + 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25' => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1_3', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10B329'), 'model' => 'iPhone', 'mobileGrade' => 'A' ), + 'Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Coast/1.0.2.62956 Mobile/10B329 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Coast' => '1.0.2.62956')), + ), + + 'Archos' => array( + + 'Mozilla/5.0 (Linux; Android 4.2.2; Qilive 97R Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array( + 'isMobile' => true, 'isTablet' => true + ), + ), + + 'AudioSonic' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'BlackBerry' => array( + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.8+', 'BlackBerry' => '6.0.0.546'), 'model' => 'BlackBerry 9300' ), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.400 Mobile Safari/534.11+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.723 Mobile Safari/534.8+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.714 Mobile Safari/534.11+' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.11+', 'BlackBerry' => '7.1.0.714'), 'model' => 'BlackBerry 9790' ), + 'Opera/9.80 (BlackBerry; Opera Mini/7.0.29990/28.2504; U; en) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.342 Mobile Safari/534.11+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit/534.8 (KHTML, like Gecko) Version/6.0.0.480 Mobile Safari/534.8' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.0.0.583 Mobile Safari/534.11' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.576 Mobile Safari/534.11+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.523 Mobile Safari/534.11' => array('isMobile' => true, 'isTablet' => false), + 'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136' => array('isMobile' => true, 'isTablet' => false), + 'BlackBerry8520/5.0.0.1067 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/603' => array('isMobile' => true, 'isTablet' => false), + 'BlackBerry8520/5.0.0.1036 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/611' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '5.0.0.1036', 'VendorID' => '611'), 'model' => 'BlackBerry8520' ), + 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.337 Mobile Safari/534.11+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (BB10; Touch) /537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '10.0.9.2372') ), + 'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A200' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A500' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A501' ), + 'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer' ), + 'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer Pad TF300T' ), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JZO54K'), 'model' => 'Transformer' ), + 'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'B1-A71' ), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0', 'IE' => '9.0'), 'model' => 'Allegro' ), + ), + + 'Broncho' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + + ), + + // @ref: http://www.bqreaders.com/gb/tablets-prices-sale.html + 'bq' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build/1.1.7 20121018-10:33) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build/1.1.10-1015 20121230-18:00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.3; Maxwell Lite Build/v1.0.0.ICS.maxwell.20120920) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build/1.0.0 20120913-10:39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Captiva' => array( + 'Opera/9.80 (X11; Linux zvav; U; de) Presto/2.8.119 Version/11.10 Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array( + 'isMobile' => true, 'isTablet' => true, + ), + ), + + 'Casio' => array( + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build/C771M120) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + ), + + 'ChangJia' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true) + + ), + + // @ref: http://www.cobyusa.com/?p=pcat&pcat_id=3001 + 'Coby' => array( + 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build/FRF85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Concorde' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Cresta' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Cube' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Danew' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array( 'Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0' ), 'model' => 'Dslide 700' ) + + ), + + 'DanyTech' => array( + 'Mozilla/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Dell' => array( + 'Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; DELL; Venue Pro)' => array('isMobile' => true, 'isTablet' => false), + ), + + 'DPS' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'ECS' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30')) + ), + + 'Eboda' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0')), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build/ICS.g12refM806A1YBD.20120925) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Fly' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + ), + + 'Fujitsu' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build/V21R48A) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'V21R48A', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ), + + ), + + 'FX2' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + + // @ref: http://www.galapad.net/product.html + 'Galapad' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JRO03C') ), + + ), + + 'GoClever' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build/MID) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Google' => array( + 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Mobile Safari/537.31 OPR/14.0.1074.54070' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Opera' => '14.0.1074.54070') ), + 'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Chrome' => '26.0.1410.58')), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2; Nexus 7 Build/JOP40C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Chrome' => '18.0.1025.166') ), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build/JZO54K; CyanogenMod-10.0.0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android; en_us; Nexus 7 Build/) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 NetFrontLifeBrowser/2.3 Mobile (Dragonfruit)' => array('isMobile' => true, 'isTablet' => true), + ), + + 'GU' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0')), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0')), + + ), + + 'HCL' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build/HCL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build/HCL ME Tablet X1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + ), + + 'HP' => array( + 'Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.5; U; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 TouchPad/1.0' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; HP Slate 7 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build/1.0.7_WW-FIR-13) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'HTC' => array( + 'Mozilla/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24' => array('isMobile' => true, 'isTablet' => false), + 'HTC_Touch_HD_T8282 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build/FRF91) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180/1.0 Android/2.2 release/06.23.2010 Browser/WAP 2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; HTC/DesireS/1.07.163.1 Build/GRH78C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC/DesireS/2.10.161.3 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build/GRI40; ILWT-CM7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U/1.05.161.1 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.3; PG86100 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build/MIUI) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.1; HTC Butterfly Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.1; EVO Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; HTCSensation Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC 7 Mozart T8698; QSD8x50)' => array( + 'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => '7 Mozart T8698', + ), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 HTC MOZART)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mondrian T8788)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart T8698)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro T7576)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Schubert T9292)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Surround)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy T8686)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Eternity)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Gold)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2 LEO)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7 T9292)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; iPad 3)' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; LEO)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mazaa)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mondrian)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart T8698)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; mwp6985)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40100)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40200)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PD67100)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI39100)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI86100)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar 4G)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 1.08.164.02)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.164.01)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.168.02)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schuber)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert T9292)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Spark)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Surround)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T7575)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8697)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8788)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9295)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9296)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; TITAN X310e)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Torphy T8686)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; X310e)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC_blocked; T8788)' => array( + 'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'T8788', + ), + + ), + + 'Hudl' => array( + 'Mozilla/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Huwaei' => array( + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build/HuaweiU8660) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build/HuaweiU8850) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'HUAWEI_T8951_TD/1.0 Android/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release/05.31.2012 Browser/WAP2.0 (AppleWebKit/534.30) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build/HuaweiMediaPad) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815/C8815V100R001C541B135; 540*960; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D/C8813DV100R001C92B172; 480*854; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C/Y300CV100R001C92B168; 480*800; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false) + ), + + 'Iconbit' => array( + 'Mozilla/5.0 (Linux; Android 4.1.1; NT-3702M Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36 OPR/16.0.1212.65583' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'iJoy' => array('Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)), + + 'Intenso' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build/JR003H) AppleWebKit/534.30 (KHTML, like Gecko)Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1.', 'Webkit' => '534.30', 'Safari' => '4.0') ), + ), + + 'IRU' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'JXD' => array('Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true) + ), + + 'Karbonn' => array( + 'Mozilla/5.0 (Linux; Android 4.1.1; ST10 Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Kobo' => array( + 'Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 (Kobo Touch)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.0', 'Webkit' => '533.1', 'Safari' => '4.0') ), + ), + + 'Lenovo' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build/ThinkPadTablet_A400_03) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; IdeaTabA1000-G) U2/1.0.0 UCBrowser/9.2.0.419 Mobile' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.117 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.360' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H/S100) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.1 Mobile Safari/534.300' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.300' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'LG' => array( + 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v/V10f Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; LG-F180K Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; LG-V500 Build/JDQ39B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; LG-V510 Build/KOT49H.L004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG E-900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900k)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900h)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-Optimus 7)' => array('isMobile' => true, 'isTablet' => false), + // @ref: http://ja.wikipedia.org/wiki/L-06C + 'Mozilla/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Megafon' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; MT7A Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'MediaTek' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30/4.05d.1002.m7' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Micromax' => array( + + 'Mozilla/5.0 (Linux; Android 4.1.1; Micromax A110 Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.22', 'Chrome' => '25.0.1364.169') ), + 'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '534.30', 'Android' => '4.0', 'Build' => 'IMM76D', 'Safari' => '4.0') ), + + ), + + 'Microsoft' => array( + + // Surface tablet + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('IE' => '10.0', 'Windows NT' => '6.2', 'Trident' => '6.0') ), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; ARMBJS)' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MASMJS)' => array('isMobile' => false, 'isTablet' => false), + + // Thanks to Jonathan Donzallaz! + // Firefox (nightly) in metro mode on Dell XPS 12 + 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko/20130626 Firefox/25.0' => array('isMobile' => false, 'isTablet' => false), + // Firefox in desktop mode on Dell XPS 12 + 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0' => array('isMobile' => false, 'isTablet' => false), + // IE10 in metro mode on Dell XPS 12 + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MDDCJS)' => array('isMobile' => false, 'isTablet' => false), + // IE10 in desktop mode on Dell XPS 12 + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MDDCJS)' => array('isMobile' => false, 'isTablet' => false), + // Opera on Dell XPS 12 + 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130' => array('isMobile' => false, 'isTablet' => false), + // Chrome on Dell XPS 12 + 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36' => array('isMobile' => false, 'isTablet' => false), + // Google search app from Windows Store + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MDDCJS; WebView/1.0)' => array('isMobile' => false, 'isTablet' => false), + ), + + 'Modecom' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Motorola' => array( + 'MOT-W510/08.11.05R MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0 UP.Link/6.3.0.0.0' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build/MLS2GC_2.6.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build/4.5.1_57_DX8-51) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build/4.5.1A-1_SUN-254_13) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build/4.5.2-51_DFL-50) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build/4.5.2A-51_OLL-17.8) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build/V1.540) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.1; en-us; Xoom Build/HMJ25) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build/6.7.2-180_DHD-16_M4-31) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build/V2.27D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'XT687' ), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build/6.7.2-180_SPU-19-TA-11.6) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT910 Build/9.8.2O-124_SPUL-17) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT915 Build/2_32A_2031) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT919 Build/2_290_2017) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT925 Build/9.8.2Q-50-XT925_VQLM-20) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT907 Build/9.8.1Q-66) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; XT901 Build/9.8.2Q-50_SLS-13) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; DROID BIONIC Build/9.8.2O-72_VZW-22) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + ), + + // @ref: https://www.nabitablet.com/ + 'Nabi' => array( + 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + ), + + 'NEC' => array( + // @ref: http://www.n-keitai.com/n-08d/?from=mediasnet + // @ref: http://devlog.dcm-gate.com/2012/03/medias-tab-n-06duseragnet.html + // @ref: http://keitaiall.jp/N-08D.html aka MEDIAS TAB + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build/A5001911) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android AAA; BBB; N-06D Build/CCC) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'Nook' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build/ERD79 1.4.3) Apple WebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2.1', 'Webkit' => '533.1', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build/ICS) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'ICS', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; Android 4.0.4; BNTV600 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36 Hughes-PFB/CID5391275.AID1376709964' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76L', 'Webkit' => '537.36', 'Chrome' => '28.0.1500.94') ), + + ), + + 'Nokia' => array( + 'Nokia200/2.0 (12.04) Profile/MIDP-2.1 Configuration/CLDC-1.1 UCWEB/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2/1.0.0 UCBrowser/8.9.0.251 U2/1.0.0 Mobile UNTRUSTED/1.0' => array('isMobile' => true, 'isTablet' => false), + 'Nokia6303iclassic/5.0 (06.61) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/5.0 AppleWebKit/420+ (KHTML, like Gecko) Safari/420+' => array('isMobile' => true, 'isTablet' => false), + 'nokian73-1/UC Browser7.8.0.95/69/400 UNTRUSTED/1.0' => array('isMobile' => true, 'isTablet' => false), + 'Nokia2760/2.0 (06.82) Profile/MIDP-2.1 Configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'Nokia3650/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0' => array('isMobile' => true, 'isTablet' => false), + 'NokiaN70-1/5.0737.3.0.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1/UC Browser7.8.0.95/27/352' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.6.0.199/28/444/UCWEB Mobile' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2)/UC Browser8.5.0.183/28/444/UCWEB Mobile' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.7.0.218/28/352/UCWEB Mobile' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Series40; NokiaC3-00/08.63; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.2.0.0.33' => array('isMobile' => true, 'isTablet' => false), + 'Opera/9.80 (Series 60; Opera Mini/7.0.31380/28.2725; U; es) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Opera Mini' => '7.0.31380', 'Presto' => '2.8.119')), + 'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaX7-00/022.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaE6-00/111.140.0058; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.020.0308; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.1.14 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaN8-00/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia701/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.83; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120ci/7.02; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/7.10; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE66-1/510.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95-3/20.2.011 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE51-1/200.34.36; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE63-1/500.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN82/10.0.046; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/052.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/@version@; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/031.022; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.3.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 Nokia6220c-1/06.101; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/071.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/061.005; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaX6-00/40.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gb' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/60.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaC5-03/12.0.023; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5228/40.1.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5230/51.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5530c-2/32.0.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/21.0.045; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.4' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-4/30.0.004; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.28 3gpp-gba' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Symbian' => '9.4', 'Webkit' => '533.4', 'NokiaBrowser' => '7.3.1.28'), 'model' => 'NokiaN97-4' ), + + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 7 Mozart T8698)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; 710)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; HD7 T9292)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; LG E-900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 610)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; T-Mobile)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Vodafone)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800) UP.Link/5.1.2.6' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; SFR)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; T-Mobile)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; vodafone)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 800c)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 920)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)' => array('isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '10.0', 'Windows Phone OS' => '8.0', 'Trident' => '6.0'), 'model' => 'Lumia 920' ), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; lumia800)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 610)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 710)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800C)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 900)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Nokia)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; SGH-i917)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; TITAN X310e)' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'TITAN X310e' ), + ), + + 'Odys' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build/ODYS XENO 10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + ), + + 'OverMax' => array( + 'OV-SteelCore(B) Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build/ICS.g08refem611.20121010) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'YONESTablet' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + // @todo: Research http://www.pantech.com/ + 'Pantech' => array( + 'PANTECH-C790/JAUS08312009 Browser/Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build/GRI40) AppleWebKit/533.1 (KHTML like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Philips' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + + ), + + 'PointOfView' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Prestigio' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'PMP7100D3G' ), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 MobilSafari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'PROSCAN' => array( + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ), + ), + + 'PyleAudio' => array( + 'Mozilla/5.0 (Linux; Android 4.0.4; PTBL92BC Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '537.36', 'Chrome' => '31.0.1650.59')), + + ), + + 'RockChip' => array( + 'Mozilla/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build/ECLAIR) AppleWebKit/530.17 (KHTML like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => true), + ), + + 'RossMoor' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true) + + ), + + // @ref: http://www.qmobile.com.pk/complete_range.php# + 'QMobile' => array( + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + ), + + 'Samsung' => array( + 'MQQBrowser/4.0/Mozilla/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('MQQBrowser' => '4.0')), + 'SAMSUNG-SGH-P250-ORANGE/P250BVHH8 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0' => array('isMobile' => true, 'isTablet' => false), + 'SAMSUNG-GT-B2710/B271MCXKF1 SHP/VPP/R5 Dolfin/2.0 QTV/5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Dolfin' => '2.0') ), + 'SAMSUNG-SGH-D900i/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0' => array('isMobile' => true, 'isTablet' => false), + 'SAMSUNG-GT-S5233T/S5233TXEJE3 SHP/VPP/R5 Jasmine/0.8 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5380D/S5380FXXKL3; U; Bada/2.0; ru-ru) AppleWebKit/534.20 (KHTML, like Gecko) Dolfin/3.0 Mobile HVGA SMM-MMS/1.2.0 OPN-B' => array('isMobile' => true, 'isTablet' => false), + 'SAMSUNG-GT-C3312/1.0 NetFront/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1' => array('isMobile' => true, 'isTablet' => false), + 'SAMSUNG-GT-S3650/S3650XEII3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94/140/352' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5250/S5250XEKJ3; U; Bada/1.0; ru-ru) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WQVGA SMM-MMS/1.2.0 NexPlayer/3.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8530/S8530XXJKA; U; Bada/1.2; cs-cz) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build/Donut) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + // @about FROYO: http://gizmodo.com/5543853/what-is-froyo + 'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build/FROYO) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.1.261' => array('isMobile' => true, 'isTablet' => false, 'version' => array('MicroMessenger' => '4.5.1.261')), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE/I9001BVKPC Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '16.0.912.75') ), + 'Mozilla/5.0 (Linux; Android 4.0.3; SGH-T989 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '18.0.1025.166') ), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.4; GT-I9300 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; SPH-D710 Build/IMM76I) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE/I9300BVBLG2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/355' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.4; GT-P5110 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD/1.0 Android/4.0.4 Release/07.15.2012 Browser/AppleWebKit534.30 Build/IMM76D) ApplelWebkit/534.30 (KHTML,like Gecko) Version/4.0 Mobile Safari/534.30' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4') ), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; GT-N7100 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.52315' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array( 'Build' => 'JZO54K', 'Webkit' => '537.22', 'Opera' => '14.0.1025.52315' ) ), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.1; SGH-i747M Build/JRO03L) AppleWebKit/535.19(KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; GT-I8262 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; GT-P5210 Build/JDQ39) AppleWebKit/537.36 (KHTML, Like Gecko) Chrome/27.0.1453.90 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; CETUS)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus I917 By TC)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus i917)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; FOCUS S)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-I8350)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-i8700)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-S7530)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Hljchm\'s Wp)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; I917)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA 7)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7 By MWP_HS)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i677)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917.)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917R)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i937)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SMG-917R)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SUMSUNG; OMNIA 7)' => array('isMobile' => true, 'isTablet' => false), + + ), + + 'simvalley' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + + ), + + 'Sony' => array( + 'SonyEricssonK800i/R1AA Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build/2.0.1.A.0.47) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build/2.1.1.A.0.6) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build/3.0.1.G.0.75) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build/TID0092) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'TID0092', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; Android 4.0.3; LT18i Build/4.1.A.0.562) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.3; Sony Tablet S Build/TISU0R0110) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build/TISU0143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build/6.1.A.2.45) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; LT22i Build/6.1.B.0.544) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build/6.1.B.0.544) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.5.5) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.2.10) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.0.4; LT28h Build/6.1.E.3.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build/TJDS0170) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build/10.1.E.0.265) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Build' => '10.1.E.0.265', 'Webkit' => '534.30', 'Safari' => '4.0') ), + 'Mozilla/5.0 (Linux; Android 4.1.2; LT26w Build/6.2.B.1.96) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; SGP321 Build/10.3.1.A.0.33) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => '10.3.1.A.0.33', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58') ), + + 'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build/10.1.1.A.1.273) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build/10.1.1.A.1.310) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build/14.1.M.0.202) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build/14.1.n.0.63) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build/12.0.B.5.37) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.1.2; M35c Build/12.0.B.2.42) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build/12.0.C.2.42) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.3.2.349 U3/0.8.0 Mobile Safari/534.31' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; D6502 Build/17.1.A.2.69) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; D6503 Build/17.1.A.0.504) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; D6543 Build/17.1.A.2.55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2004 Build/20.0.A.0.29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build/20.0.A.1.12) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2104 Build/20.0.B.0.84) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2105 Build/20.0.B.0.74) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.170 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build/20.0.B.0.85) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2302 Build/18.0.B.1.23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build/18.0.b.1.23) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.6.3.413 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2303 Build/18.0.C.1.13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2305 Build/18.0.A.1.30) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D2306 Build/18.0.C.1.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D5303 Build/19.0.1.A.0.207) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; D5306 Build/19.1.A.0.264) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build/19.0.D.0.269) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.6.428 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build/19.0.C.2.59) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; D5322 Build/19.0.D.0.253) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build/14.2.A.1.146) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.3; M51w Build/14.2.A.1.146) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.1; D5102 Build/18.2.A.0.9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.1; D5103 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.1; D5106 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 GSA/3.2.17.1009776.arm' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build/14.1.G.2.257) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.4.2; C6943 Build/14.3.A.0.681) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; Android 4.2.2; SGP412 Build/14.1.B.3.320) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false), + + 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.1.2; SGP351 Build/10.1.1.A.1.307) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.3; SGP341 Build/10.4.B.0.569) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.4.2; SGP511 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.4.2; SGP512 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build/17.1.A.2.69) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Safari/537.16' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build/17.1.A.2.36) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.4.2; SGP551 Build/17.1.A.2.72) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + + 'SonyEricssonU5i/R2CA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525' => array('isMobile' => true, 'isTablet' => false), + 'SonyEricssonU5i/R2AA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0' => array('isMobile' => true, 'isTablet' => false), + 'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00' => array('isMobile' => false, 'isTablet' => false), + 'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11' => array('isMobile' => false, 'isTablet' => false), + ), + + 'Skk' => array('Mozilla/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build/F10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)), + + 'Storex' => array( + 'Mozilla/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '537.36')), + "Mozilla/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.36')), + "Mozilla/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '535.19')), + ), + + 'Tecno' => array('Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)), + + 'Telstra' => array( + 'Mozilla/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build/TVA301TELBG3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + ), + + // @info: http://www.texet.ru/tablet/ + 'texet' => array( + + 'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build/GB.m1ref.20120116) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.3.4', 'Webkit' => '533.1', 'Safari' => '4.0'), 'model' => 'TM-7021' ), + + ), + + 'Tolino' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build/JDQ39) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')), + 'Mozilla/5.0 (Linux; Android 4.2.2; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1290.67495' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Toshiba' => array( + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; TOSHIBA; TSUNAGI)' => array('isMobile' => true, 'isTablet' => false), + // @ref: http://www.toshiba.co.uk/discontinued-products/folio-100/ + 'Mozilla/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build/TOSHIBA_FOLIO_AND_A) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2', 'Webkit' => '533.1', 'Safari' => '4.0') ), + ), + + 'Trekstor' => array( + 'Mozilla/5.0 (Linux; Android 4.2.2; ST70408-1 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58')), + 'Mozilla/5.0 (Linux; Android 4.2.2; VT10416-2 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array( + 'isMobile' => true, 'isTablet' => true + ), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30;SurfTab_10.1' => array( + 'isMobile' => true, 'isTablet' => true + ), + ), + + 'Visture' => array( + + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build/LR-97JC) Apple WebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build/Visture V4 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build/Visture V5 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Versus' => array( + 'Mozilla/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 BMID/E67A45B1AB' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 TwonkyBeamBrowser/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build/meizhi_V2.80.wifi8723.20121225.b11c800)' => array('isMobile' => true, 'isTablet' => true), + 'OneBrowser/3.5/Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ), + ), + + 'Viewsonic' => array( + 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' =>array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Vodafone' => array( + 'Mozilla/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.0.3; SmartTabII10 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Vonino' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + ), + + 'Xoro' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build/PAD 9719QR) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; Android 4.2.2; PAD720 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => true) + ), + + 'ZTE' => array( + 'Mozilla/5.0 (Linux; U; Android 4.2.1;zh-cn; ZTE V987 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30;' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 2.3.5; pt-pt; Blade Build/tejosunhsine) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; N880e_Dawoer_Fulllock; China Telecom)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; V965W)' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; Windows Phone - Internet 7; SFR)' => array('isMobile' => true, 'isTablet' => false), + ), + + 'Zync' => array( + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/444' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Console' => array( + + //Nintendo Wii: + 'Mozilla/5.0 (Nintendo WiiU) AppleWebKit/534.52 (KHTML, like Gecko) NX/{Version No} NintendoBrowser/{Version No}.US' => array('isMobile' => false, 'isTablet' => false), + + //Sony PlayStation: + 'Mozilla/5.0 (PLAYSTATION 3 4.21) AppleWebKit/531.22.8 (KHTML, like Gecko)' => array('isMobile' => false, 'isTablet' => false), + + //Microsoft Xbox: + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)' => array('isMobile' => false, 'isTablet' => false), + // WTF? Must investigate. + //'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)' => array('isMobile' => false, 'isTablet' => false), + + ), + + 'Other' => array( + 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 AlexaToolbar/psPCtGhf-2.2' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (X11; Linux ppc; rv:17.0) Gecko/20130626 Firefox/17.0 Iceweasel/17.0.7' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (X11; Linux) AppleWebKit/535.22+ Midori/0.4' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/535+ (KHTML, like Gecko) Version/5.0 Safari/535.20+ Midori/0.4' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18 (Edition Next)' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0' => array('isMobile' => false, 'isTablet' => false), + 'Opera/9.80 (Windows NT 5.2; WOW64) Presto/2.12.388 Version/12.14' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20100101 Firefox/14.0.1' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MANMJS)' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MASMJS)' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch; MASMJS)' => array('isMobile' => false, 'isTablet' => false), + 'Opera/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto/2.12.388 Version/12.11' => array('isMobile' => false, 'isTablet' => false), + // IE 10 + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)' => array('isMobile' => false, 'isTablet' => false), + // IE 11 @todo: Trident(.*)rv.(\d+)\.(\d+) + 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko' => array('isMobile' => false, 'isTablet' => false), + 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko' => array('isMobile' => false, 'isTablet' => false), + + // TV + 'Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/537.1+ (KHTML, like Gecko) Safari/537.1+ HbbTV/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)' => array('isMobile' => false, 'isTablet' => false), + 'HbbTV/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)' => array('isMobile' => false, 'isTablet' => false), + 'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11' => array('isMobile' => false, 'isTablet' => false), + ), + + 'Generic' => array( + + 'Mozilla/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true), + 'Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + 'Java/1.6.0_22' => array('isMobile' => false, 'isTablet' => false, 'version' => array('Java' => '1.6.0_22') ), + 'Opera/9.80 (Series 60; Opera Mini/6.5.29260/29.3417; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false), + 'Opera/9.80 (Android; Opera Mini/6.5.27452/29.3417; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false), + // New Opera + 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17 OPR/14.0.1025.52315' => array('isMobile' => false, 'isTablet' => false), + // Unknown yet + // Looks like Chromebook + 'Mozilla/5.0 (X11; CrOS armv7l 4920.83.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.103 Safari/537.36', + 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5', + 'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; GT-I9070 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', + 'Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/46154) Presto/2.11.355 Version/12.10', + 'Mozilla/5.0 (Linux; U; Android 4.0.3; it-it; DATAM819HD_C Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + 'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; cm_tenderloin Build/IMM76L; CyanogenMod-9) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + + 'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; A210 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // Acer Iconia Tab + 'Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25', + 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', + 'Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mercury/7.2 Mobile/10A523 Safari/8536.25', // Mercurio Browser + 'Opera/9.80 (Android 2.3.7; Linux; Opera Tablet/46154) Presto/2.11.355 Version/12.10', + 'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build/MASTER) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // sdk + 'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // sdk + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + 'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10', + 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // 7" Verso Android tablet + 'Mozilla/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit/532.9 (KHTML, like Gecko) Version/5.0.3 Mobile/8B5097d Safari/6531.22.7', + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // sony xperia tablet s unforts + 'Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US', + 'Mozilla/5.0 (Linux; U; Android 2.0.6_b1; ru-ru Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17', // PocketBook IQ701 (tablet) + 'Mozilla/5.0 (Linux; Android 4.0.4; z1000 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', // It is a tablet with calling + 'Mozilla/5.0 (Linux; Android 4.0.3; cm_tenderloin Build/GWK74) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', // HP touch pad running android cyanogenmod + 'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Android for Techvision TV1T808 Board Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', // My device is tablet but its detected as phone + 'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136', + 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17', // its a lenovo tablet 2 with windows 8 pro + 'Mozilla/5.0 (Linux; U; Android 3.1; ru-ru; LG-V900 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; HTC; Windows Phone 8S by HTC)', + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // MS Surface RT tablet actually! + 'Mozilla/5.0 (PLAYSTATION 3 4.11) AppleWebKit/531.22.8 (KHTML, like Gecko)', + 'Mozilla/5.0 (Linux; U; Android 3.2; ru-ru; V9S_V1.4) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', // Wrong detection - 7-inch tablet was detected as a phone. Android 3.2.1, native browser + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // Nope, its a Microsoft Surface tablet running Windows RT (8) with MSIE 10 + 'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', // Tablet! + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // its a Microsoft surface rt (tablet) + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; WebView/1.0)', + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; Next7P12 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // Nextbook 7SE Tablet + 'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10', // allview alldro speed tablet, android ics, opera mobile + 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // Its a surface in portrait + 'Mozilla/5.0 (Linux; U; Android 2.3.6; es-es; SAMSUNG GT-S5830/S5830BUKT2 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', + 'Mozilla/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build/HTK75C) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', + // Am ramas la pozitia: 207 + + // Android on Windows :) www.socketeq.com + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; full Android on Microsoft Windows, pad, pc, n*books Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + + // TV + 'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00', + + 'Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0', + // Maxthon + 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12', + 'Opera/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto/2.10.289 Version/12.02', + 'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', + 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)', + 'PalmCentro/v0001 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D061; Blazer/4.5) 16;320x320', + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)', + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Microsoft; XDeviceEmulator)', + // @todo: research N880E + 'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; MAL; N880E; China Telecom)', + 'Opera/9.80 (Series 60; Opera Mini/7.0.29482/28.2859; U; ru) Presto/2.8.119 Version/11.10', + 'Opera/9.80 (S60; SymbOS; Opera Mobi/SYB-1202242143; U; en-GB) Presto/2.10.254 Version/12.00', + 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', + 'Opera/9.80 (Android; Opera Mini/7.0.29952/28.2647; U; ru) Presto/2.8.119 Version/11.10', + 'Opera/9.80 (Android; Opera Mini/6.1.25375/28.2555; U; en) Presto/2.8.119 Version/11.10', + 'Opera/9.80 (Mac OS X; Opera Tablet/35779; U; en) Presto/2.10.254 Version/12.00', + 'Mozilla/5.0 (Android; Tablet; rv:10.0.4) Gecko/10.0.4 Firefox/10.0.4 Fennec/10.0.4', + 'Mozilla/5.0 (Android; Tablet; rv:18.0) Gecko/18.0 Firefox/18.0', + 'Opera/9.80 (Linux armv7l; Maemo; Opera Mobi/14; U; en) Presto/2.9.201 Version/11.50', + 'Opera/9.80 (Android 2.2.1; Linux; Opera Mobi/ADR-1207201819; U; en) Presto/2.10.254 Version/12.00' => array('isMobile' => true, 'isTablet' => false), + 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build/JRO03E) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', + 'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build/ONDA_MID) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), // Blaupunkt Endeavour 1010 + 'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build/ICS.g08refem618.20121102) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true), + ), + + 'Bot' => array( + 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/), + 'grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/), + 'Googlebot-Image/1.0' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/), + 'Python-urllib/2.5' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/), + 'facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/) + ), + +); diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.pending.txt b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.pending.txt new file mode 100644 index 00000000000..c673c8f76db --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.pending.txt @@ -0,0 +1,1242 @@ + req / hits / tag (444758 / 73555 / 44678) - user_agent (1041) +58989 / 6933 / 5240 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) +55308 / 9884 / 7995 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 +36138 / 1681 / 1819 - Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.15 +25387 / 4668 / 3863 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 +23850 / 4623 / 3909 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 +17258 / 1634 / 1391 - Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0 + 9315 / 1535 / 1304 - Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0 + 7146 / 1271 / 1121 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + 6559 / 1234 / 991 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + 5639 / 1297 / 863 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0 + 5448 / 0 / 0 - msnbot-media/1.1 ( http://search.msn.com/msnbot.htm) + 5320 / 563 / 700 - Opera/9.80 (Windows NT 6.2; WOW64; MRA 6.0 (build 6011)) Presto/2.12.388 Version/12.15 + 4948 / 910 / 593 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) + 4719 / 78 / 75 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1) + 4318 / 278 / 208 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E) + 4162 / 2554 / 3 - Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html) + 4140 / 903 / 919 - Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 + 3864 / 344 / 333 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 3812 / 807 / 11 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 3799 / 563 / 496 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31 + 3251 / 601 / 629 - Opera/9.80 (Windows NT 6.1; Win64; x64) Presto/2.12.388 Version/12.15 + 3202 / 0 / 0 - Mozilla/5.0 (compatible; YandexImages/3.0; http://yandex.com/bots) + 3129 / 738 / 131 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1106.241 YaBrowser/1.5.1106.241 Safari/537.4 + 3105 / 491 / 370 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22 + 3039 / 350 / 346 - Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.15 + 3038 / 2351 / 0 - Mozilla/5.0 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm) + 2971 / 392 / 399 - Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.15 + 2766 / 147 / 172 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.60 + 2764 / 739 / 17 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 + 2650 / 2044 / 0 - Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) + 2514 / 304 / 262 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 2500 / 306 / 134 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) + 2494 / 250 / 256 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.15 + 2478 / 362 / 331 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0 + 2433 / 378 / 299 - Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0 + 2369 / 234 / 127 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 + 2269 / 488 / 348 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 + 2137 / 405 / 256 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 1A820D29-8445-92BE-2384-712BBCEDFDB1; MRSPUTNIK 2, 4, 1, 12; BTRS124447; GTB7.4; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; AskTbFXTV5/5.8.0.12304) + 2050 / 391 / 464 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E) + 1937 / 1676 / 0 - Mozilla/5.0 (compatible; YandexBot/3.0; http://yandex.com/bots) + 1900 / 0 / 0 - Googlebot-Image/1.0 + 1894 / 289 / 299 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 + 1842 / 335 / 157 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 1836 / 354 / 298 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 1829 / 176 / 171 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) + 1608 / 260 / 181 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) + 1594 / 273 / 195 - Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.14 + 1543 / 1408 / 0 - Mozilla/5.0 (compatible; SearchBot) + 1511 / 176 / 115 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 + 1496 / 248 / 217 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31 + 1403 / 174 / 158 - Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + 1299 / 203 / 173 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Iron/25.0.1400.0 Chrome/25.0.1400.0 Safari/537.22 + 1220 / 206 / 207 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 YE + 1219 / 209 / 211 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0 + 1210 / 81 / 80 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) + 1136 / 173 / 139 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19 + 1125 / 194 / 158 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22 + 1068 / 173 / 130 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5680)) Presto/2.12.388 Version/12.13 + 1040 / 202 / 207 - Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0 + 1032 / 206 / 176 - Opera/9.80 (Windows NT 6.1; WOW64; U; Edition Next; ru) Presto/2.11.310 Version/12.50 + 1008 / 278 / 180 - Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 + 941 / 153 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 929 / 181 / 88 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 + 896 / 148 / 44 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 893 / 213 / 3 - Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0 + 840 / 165 / 62 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22 + 825 / 143 / 67 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; InfoPath.2; .NET CLR 2.0.50727) + 821 / 170 / 85 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + 793 / 55 / 37 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; eSobiSubscriber 2.0.4.16; .NET4.0C) + 781 / 183 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 770 / 125 / 32 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.14 + 757 / 0 / 0 - contype + 755 / 159 / 94 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 + 742 / 81 / 22 - Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14 + 709 / 180 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 + 702 / 201 / 204 - Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 696 / 106 / 116 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 685 / 76 / 21 - Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 + 667 / 149 / 265 - Mozilla/5.0 (X11; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 + 648 / 51 / 49 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.60 + 645 / 175 / 20 - Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 + 643 / 87 / 86 - Opera/9.80 (Windows NT 6.1; WOW64; Edition Yx) Presto/2.12.388 Version/12.15 + 642 / 59 / 59 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.54 + 642 / 122 / 124 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0 + 603 / 69 / 50 - Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.12 + 596 / 64 / 0 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (FlipboardProxy/0.0.5; http://flipboard.com/browserproxy) + 593 / 30 / 39 - Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.02 + 589 / 72 / 14 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MAAU; InfoPath.1) + 562 / 93 / 83 - Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 Iceweasel/10.0.12 + 557 / 98 / 24 - Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.15 + 545 / 108 / 137 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:20.0) Gecko/20100101 Firefox/20.0 + 532 / 87 / 62 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.28 Safari/537.31 + 519 / 280 / 0 - SolomonoBot/1.04 (http://www.solomono.ru) + 518 / 106 / 69 - Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.13 + 518 / 95 / 28 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.46 Safari/537.31 + 506 / 55 / 16 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C) + 476 / 66 / 67 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.29.13 (KHTML, like Gecko) Version/6.0.4 Safari/536.29.13 + 437 / 61 / 18 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.15 + 435 / 0 / 0 - Mozilla/5.0 (compatible) Feedfetcher-Google; ( http://www.google.com/feedfetcher.html) + 434 / 56 / 51 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.14 + 431 / 28 / 29 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 4, 1, 110; chromeframe/26.0.1410.64; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; InfoPath.2) + 431 / 422 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google ( https://developers.google.com/ /web/snippet/) + 426 / 62 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 422 / 62 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 (.NET CLR 3.5.30729) + 417 / 56 / 21 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.12 + 401 / 64 / 64 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.65 Safari/537.36 + 400 / 387 / 0 - Mozilla/5.0 (compatible; Linux i686; Yandex.Gazeta Bot/1.0; http://gazeta.yandex.ru) + 397 / 85 / 60 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0 Iceweasel/20.0 + 387 / 50 / 49 - Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0 + 379 / 71 / 0 - Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.11 + 368 / 40 / 41 - Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0 SeaMonkey/2.17.1 + 367 / 47 / 33 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 + 366 / 24 / 24 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.1) + 366 / 85 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 + 360 / 60 / 30 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; DefView) + 359 / 17 / 17 - Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1212030820) Presto/2.11.355 Version/12.10 + 356 / 60 / 48 - Mozilla/5.0 (Linux; U; Android 2.2; ru-ru; HTC_Gratia_A6380 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 355 / 18 / 20 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 352 / 51 / 49 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 CoolNovo/2.0.7.11 + 348 / 74 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 340 / 47 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 8.0 (build 6007)) Presto/2.12.388 Version/12.14 + 340 / 95 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 + 333 / 58 / 59 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1106.241 YaBrowser/1.5.1106.241 Safari/537.4 + 311 / 21 / 16 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 310 / 30 / 39 - Mozilla/5.0 (Linux; Android 4.0.4; HTC Incredible S Build/IMM76D) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 308 / 47 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1 + 306 / 18 / 0 - facebookexternalhit/1.1 ( http://www.facebook.com/externalhit_uatext.php) + 305 / 20 / 21 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 304 / 65 / 62 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5 + 303 / 293 / 0 - Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; http://go.mail.ru/help/robots) + 302 / 76 / 0 - Microsoft-WebDAV-MiniRedir/6.1.7601 + 300 / 88 / 29 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 + 285 / 184 / 0 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (FlipboardProxy/1.1; http://flipboard.com/browserproxy) + 282 / 35 / 40 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 + 282 / 58 / 5 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10 + 276 / 22 / 25 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.29.13 (KHTML, like Gecko) Version/6.0.4 Safari/536.29.13 + 273 / 12 / 0 - Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.0.11) Gecko/2009061118 Fedora/3.0.11-1.fc9 Firefox/3.0.11 + 267 / 27 / 14 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 + 261 / 75 / 12 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.50.2 (KHTML, like Gecko) Version/5.0.6 Safari/533.22.3 + 254 / 0 / 0 - Wget/1.11.4 + 253 / 21 / 14 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 250 / 24 / 14 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 + 250 / 57 / 0 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 250 / 218 / 0 - msnbot/2.0b ( http://search.msn.com/msnbot.htm) + 244 / 0 / 0 - Googlebot/2.1 ( http://www.google.com/bot.html) + 240 / 25 / 33 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart T8698) + 238 / 132 / 23 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + 233 / 63 / 39 - Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0 + 232 / 12 / 11 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 228 / 29 / 34 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 + 219 / 34 / 10 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.12 + 219 / 26 / 2 - Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0 + 216 / 41 / 45 - Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20130415 Firefox/22.0 + 214 / 16 / 14 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7) + 214 / 49 / 19 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 214 / 24 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 213 / 13 / 14 - Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.24) Gecko/20111109 CentOS/3.6.24-3.el6.centos Firefox/3.6.24 + 207 / 26 / 26 - Mozilla/5.0 (Windows NT 6.2; rv:21.0) Gecko/20100101 Firefox/21.0 + 206 / 38 / 69 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 504; GTB7.4; BTRS99144; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.2; Zune 4.7) + 203 / 23 / 23 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 5.9 (build 4947)) Presto/2.12.388 Version/12.15 + 202 / 78 / 1 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch) + 201 / 60 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10 + 199 / 11 / 13 - Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; HTC Sensation Z710e Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 197 / 93 / 0 - Mozilla/5.0 (compatible; Butterfly/1.0; http://labs.topsy.com/butterfly/) Gecko/2009032608 Firefox/3.0.8 + 197 / 41 / 42 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 193 / 59 / 6 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; MS-RTC LM 8; BRI/2; .NET4.0E) + 193 / 13 / 12 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) + 193 / 11 / 12 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 + 186 / 45 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 185 / 154 / 0 - SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) + 184 / 43 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:19.0) Gecko/20100101 Firefox/19.0 + 184 / 6 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 + 184 / 14 / 13 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.47 Safari/535.11 MRCHROME + 183 / 61 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://www.changedetection.com/bot.html ) + 182 / 15 / 15 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.64 + 182 / 13 / 15 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1106.241 YaBrowser/1.5.1106.241 Safari/537.4 + 179 / 8 / 9 - Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0 + 178 / 31 / 23 - Opera/9.80 (Windows NT 6.1; Edition Yx) Presto/2.12.388 Version/12.15 + 178 / 24 / 27 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 + 177 / 17 / 18 - Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 177 / 31 / 33 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Comodo_Dragon/15.0.3.0 Chrome/15.0.874.102 Safari/535.2 + 176 / 43 / 45 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Iron/19.0.1100.0 Chrome/19.0.1100.0 Safari/536.5 + 175 / 148 / 0 - DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) + 175 / 35 / 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 174 / 19 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) + 172 / 52 / 0 - Opera/9.80 (Windows NT 6.0; U; en) Presto/2.10.289 Version/12.02 + 170 / 21 / 32 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7 + 170 / 27 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0 + 170 / 25 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MALC) + 167 / 27 / 30 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0 + 167 / 33 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) + 165 / 9 / 9 - Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 + 164 / 19 / 0 - Mozilla/5.0 (Windows NT 6.0; rv:17.0) Gecko/20100101 Firefox/17.0 + 163 / 19 / 1 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9300 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 162 / 54 / 2 - Opera/9.80 (Windows NT 6.1; Win64; x64) Presto/2.12.388 Version/12.14 + 158 / 21 / 13 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0 + 156 / 39 / 11 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10 + 155 / 18 / 8 - Opera/9.80 (Android 4.0.4; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 154 / 50 / 1 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1106.241 YaBrowser/1.5.1106.241 Safari/537.4 + 150 / 27 / 14 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17 + 150 / 5 / 6 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0 + 148 / 27 / 1 - Mozilla/5.0 (Windows NT 6.0; rv:19.0) Gecko/20100101 Firefox/19.0 + 145 / 26 / 9 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 + 143 / 32 / 4 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;RURU) + 142 / 13 / 11 - Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 + 142 / 121 / 1 - Java/1.7.0_21 + 140 / 16 / 3 - Mozilla/5.0 (Windows NT 6.0; rv:20.0) Gecko/20100101 Firefox/20.0 + 140 / 18 / 3 - Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 + 140 / 9 / 13 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; HTC_Sensation_Z710e; ru-ru) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 + 139 / 12 / 0 - Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 + 134 / 16 / 18 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.57 Safari/537.1 + 134 / 0 / 0 - Evernote Clip Resolver + 132 / 30 / 8 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20130409 Firefox/20.0 + 132 / 17 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 + 132 / 38 / 0 - Wget/1.13.4 (linux-gnu) + 132 / 35 / 0 - Opera/9.80 (Windows NT 6.1; Edition Yx) Presto/2.12.388 Version/12.14 + 132 / 13 / 15 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 132 / 113 / 0 - Mozilla/5.0 (compatible; Mail.RU_Bot/2.0; http://go.mail.ru/help/robots) + 131 / 41 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.62 + 131 / 15 / 1 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729; .NET4.0E) + 131 / 103 / 0 - UnwindFetchor/1.0 ( http://www.gnip.com/) + 130 / 27 / 19 - Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1 + 128 / 9 / 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17 + 128 / 62 / 1 - - + 126 / 0 / 50 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534 (KHTML, like Gecko) BingPreview/1.0b + 124 / 14 / 19 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E) + 122 / 25 / 2 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.1) + 121 / 58 / 0 - Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com) + 121 / 3 / 3 - Opera/9.80 (Android; Opera Mini/6.5.27452/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 120 / 24 / 9 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1 + 120 / 5 / 6 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9100 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 119 / 17 / 19 - Opera/9.80 (Windows NT 6.1; MRA 5.9 (build 4953)) Presto/2.12.388 Version/12.15 + 118 / 46 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.3) + 118 / 35 / 8 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 + 117 / 23 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 116 / 20 / 24 - Mozilla/5.0 (X11; SunOS i86pc; rv:10.0.4) Gecko/20100101 Firefox/10.0.4 + 115 / 6 / 2 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko; Google Web Preview) Chrome/22.0.1229 Safari/537.4 + 115 / 17 / 16 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 + 112 / 9 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 111 / 15 / 17 - Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 111 / 13 / 16 - Opera/9.80 (Windows NT 6.0; MRA 5.5 (build 02842)) Presto/2.12.388 Version/12.14 + 110 / 61 / 0 - Mozilla/5.0 (compatible; TourlentaScanner/0.6; http://tourlenta.com) + 110 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 108 / 15 / 3 - Mozilla/5.0 (Windows NT 5.1; rv:10.0) Gecko/20100101 Firefox/10.0 + 107 / 40 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_1) AppleWebKit/536.25 (KHTML, like Gecko) Version/6.0 Safari/536.25 + 104 / 11 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0 + 104 / 13 / 13 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 104 / 41 / 1 - Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 103 / 80 / 0 - NING/1.0 + 103 / 16 / 12 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9100 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 103 / 30 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1106.240 YaBrowser/1.5.1106.240 Safari/537.4 + 102 / 12 / 15 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7 + 101 / 17 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.12 Safari/537.36 + 101 / 14 / 2 - Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0 + 101 / 15 / 16 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.2; .NET4.0C; .NET4.0E) + 98 / 2 / 2 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) QupZilla/1.4.3 Safari/537.21 + 98 / 9 / 8 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 96 / 14 / 5 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 95 / 26 / 2 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.7.62 Version/11.00 + 94 / 21 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 + 93 / 22 / 22 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; AskTbAVR-3/5.15.11.30498) + 92 / 36 / 36 - Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0 + 92 / 17 / 0 - Opera/9.80 (Windows NT 6.1; U; en) Presto/2.10.229 Version/11.62 + 92 / 23 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MRSPUTNIK 2, 4, 1, 162; MRA 5.5 (build 02842); SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729) + 91 / 12 / 13 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800) + 91 / 15 / 19 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.10 + 89 / 1 / 1 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 CoolNovo/2.0.7.11 + 88 / 17 / 20 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A8426 Safari/8536.25 + 88 / 45 / 0 - Mozilla/5.0 (compatible; vkShare; http://vk.com/dev/Share) + 88 / 12 / 15 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 YaBrowser/1.7.1364.12390 Safari/537.22 + 87 / 24 / 24 - Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.11 + 87 / 11 / 12 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5976)) Presto/2.12.388 Version/12.15 + 85 / 3 / 0 - Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20130525 Firefox/24.0 + 85 / 2 / 2 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MDDC; InfoPath.3; .NET4.0C) + 84 / 5 / 5 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0 + 83 / 27 / 8 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 YE + 82 / 10 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0 + 81 / 16 / 0 - Mozilla/5.0 (X11; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0 + 81 / 9 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) + 81 / 2 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 81 / 6 / 8 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30; .NET4.0C; .NET4.0E) + 80 / 9 / 9 - Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0 + 79 / 11 / 0 - Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 + 78 / 4 / 4 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Safari/537.22 + 78 / 20 / 21 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24 + 78 / 26 / 0 - Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 76 / 8 / 14 - Opera/9.80 (Windows NT 6.1; WOW64; Edition Rambler) Presto/2.12.388 Version/12.15 + 75 / 56 / 0 - Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php? ) + 74 / 18 / 19 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0) + 74 / 5 / 13 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 74 / 9 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 (.NET CLR 3.5.30729) + 74 / 4 / 1 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.289 Version/12.02 + 74 / 6 / 4 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 74 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 2, 0, 94; GTB7.4; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 73 / 8 / 8 - Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) + 72 / 40 / 0 - Mozilla/5.0 (compatible; YandexDirect/3.0; http://yandex.com/bots) + 71 / 24 / 5 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MASMJS) + 70 / 2 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.47 Safari/535.11 MRCHROME + 70 / 24 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 484; MRA 6.0 (build 5970); .NET4.0E; AskTbFXTV5/5.14.1.20007; .NET4.0C) + 70 / 11 / 0 - Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) + 69 / 6 / 8 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 69 / 5 / 8 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 5.10 (build 5282)) Presto/2.12.388 Version/12.15 + 69 / 4 / 5 - Opera/9.80 (Android; Opera Mini/7.5.33286/29.3345; U; en) Presto/2.8.119 Version/11.10 + 67 / 15 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; Media Center PC 6.0; BRI/2; InfoPath.3) + 67 / 10 / 8 - Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1 + 67 / 17 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.36 YaBrowser/2.0.1364.6141 Safari/537.22 + 67 / 11 / 7 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 67 / 3 / 3 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) + 65 / 6 / 1 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0 + 65 / 8 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:16.0; Avant TriCore) Gecko/20121105 Firefox/16.0 + 64 / 16 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31 + 64 / 5 / 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.53 Mobile/10B329 Safari/8536.25 + 64 / 9 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30 + 64 / 4 / 6 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17 + 63 / 6 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 63 / 6 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 Iceweasel/18.0.1 + 63 / 0 / 0 - Microsoft Office Existence Discovery + 63 / 2 / 5 - Mozilla/5.0 (Linux; U; Android 2.3.5; en-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 63 / 10 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB7.4; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 63 / 7 / 12 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 6081)) Presto/2.12.388 Version/12.15 + 62 / 43 / 0 - ia_archiver ( http://www.alexa.com/site/help/webmasters; crawler@alexa.com) + 60 / 17 / 0 - Opera/9.80 (Windows NT 5.2; Edition Yx) Presto/2.12.388 Version/12.14 + 60 / 0 / 0 - Opera/9.80 (Series 60; Opera Mini/7.0.29482/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 59 / 3 / 4 - Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 58 / 0 / 2 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 58 / 6 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E) + 57 / 5 / 5 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.12 Safari/537.36 + 57 / 7 / 0 - Mozilla/5.0 (Linux; Android 4.0.4; ZTE Grand Era Build/IMM76L) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Mobile Safari/537.31 OPR/14.0.1074.54070 + 57 / 5 / 7 - Mozilla/5.0 (Linux; Android 4.0.4; U8836D Build/HuaweiU8836D) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 56 / 3 / 4 - Opera/9.80 (Windows NT 6.1; Edition Yx 01) Presto/2.12.388 Version/12.14 + 56 / 4 / 4 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ru-ru) AppleWebKit/535 (KHTML, like Gecko) Version/5.0 Safari/535.18 Midori/0.4 + 55 / 11 / 1 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 55 / 13 / 14 - Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 54 / 4 / 4 - Opera/9.80 (Windows NT 6.1; Edition Yx 01) Presto/2.12.388 Version/12.11 + 54 / 35 / 0 - ichiro/3.0 (http://search.goo.ne.jp/option/use/sub4/sub4-1/) + 54 / 20 / 0 - Microsoft-WebDAV-MiniRedir/6.1.7600 + 54 / 5 / 7 - Mozilla/5.0 (Linux; U; Android 2.2.1; ru-ru; HTC Wildfire Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 53 / 18 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1 + 53 / 2 / 3 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 53 / 10 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31 + 53 / 9 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1 + 52 / 2 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17 CoolNovo/2.0.6.12 + 52 / 5 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 SeaMonkey/2.16.2 + 52 / 2 / 4 - Opera/9.80 (Windows NT 6.2; WOW64; YZF) Presto/2.12.388 Version/12.15 + 52 / 8 / 0 - Mozilla/5.0 (Linux; U; Android 3.2; ru-ru; GT-P7300 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 + 51 / 12 / 18 - Opera/9.80 (Windows NT 5.1; WOW64) Presto/2.12.388 Version/12.14 + 51 / 11 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 + 51 / 41 / 0 - Mozilla/5.0 (compatible; TweetedTimes Bot/1.0; http://tweetedtimes.com) + 51 / 7 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) + 51 / 5 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 49 / 12 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14 + 49 / 4 / 4 - Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 + 48 / 4 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) + 47 / 11 / 3 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.36 YaBrowser/2.0.1364.6141 Safari/537.22 + 47 / 39 / 0 - Wotbox/2.01 ( http://www.wotbox.com/bot/) + 47 / 4 / 4 - Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 46 / 12 / 2 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0 + 46 / 4 / 5 - Opera/9.80 (Windows NT 6.1; MRA 5.10 (build 5310)) Presto/2.12.388 Version/12.14 + 45 / 3 / 4 - Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 45 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 + 44 / 8 / 8 - Opera/9.80 (X11; Linux i686; U; en) Presto/2.10.289 Version/12.02 + 43 / 0 / 0 - Microsoft Office Protocol Discovery + 43 / 1 / 2 - Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120714 Iceweasel/3.5.16 (like Firefox/3.5.16) + 43 / 10 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/25.0.1364.124 Mobile/10B329 Safari/8536.25 + 42 / 5 / 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B350 Safari/8536.25 + 42 / 3 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) + 42 / 9 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0 + 42 / 40 / 0 - Mozilla/5.0 (compatible; Genieo/1.0 http://www.genieo.com/webfilter.html) + 41 / 2 / 4 - Mozilla/5.0 (Linux; Android 4.0.4; ZTE Grand Era Build/IMM76L) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 40 / 5 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0 + 40 / 19 / 0 - rogerbot/1.0 (http://www.seomoz.org/dp/rogerbot, rogerbot-crawler shiny@seomoz.org) + 40 / 4 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; SP-A20i Build/MF_ICS_02.19) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 40 / 0 / 0 - Mozilla/5.0 (compatible; YandexImageResizer/2.0; http://yandex.com/bots) + 40 / 9 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; SonyEricssonLT26w Build/6.1.A.2.55) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 40 / 1 / 1 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3530; U; en) Presto/2.8.119 Version/11.10 + 40 / 13 / 13 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0.1) Gecko/20100101 Firefox/5.0.1 + 40 / 4 / 5 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU) + 39 / 19 / 0 - Twitterbot/1.0 + 38 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; chromeframe/26.0.1410.64; EasyBits GO v1.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 37 / 4 / 0 - Opera/9.80 (Android; Opera Mini/7.0.29733/29.3271; U; en) Presto/2.8.119 Version/11.10 + 37 / 16 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8) AppleWebKit/536.25 (KHTML, like Gecko) Version/6.0 Safari/536.25 + 37 / 3 / 4 - Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B208 Safari/7534.48.3 + 37 / 11 / 14 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/10.04 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19 + 37 / 4 / 4 - Mozilla/5.0 (Linux; Android 4.0.4; ST26i Build/11.0.A.3.18) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 37 / 1 / 0 - Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 36 / 16 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729) + 36 / 3 / 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 + 36 / 2 / 4 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9300 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 36 / 4 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 35 / 6 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 sputnik 2.5.3.53 + 35 / 3 / 4 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MASMJS) + 35 / 9 / 5 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Ubuntu Chromium/24.0.1312.56 Chrome/24.0.1312.56 Safari/537.17 + 35 / 4 / 7 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.56 Safari/537.36 + 34 / 2 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 + 34 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2 + 33 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:18.0) Gecko/20130119 Firefox/18.0 + 33 / 3 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B141 Safari/8536.25 + 33 / 2 / 5 - Mozilla/5.0 (Linux; Android 4.0.3; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 33 / 3 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 32 / 4 / 0 - Mozilla/5.0 (Linux; Android 4.1.2; ST26i Build/11.2.A.0.21) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 32 / 4 / 6 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.1; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 32 / 2 / 6 - Mozilla/5.0 (Android; Tablet; rv:20.0) Gecko/20.0 Firefox/20.0 + 32 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (via ggpht.com) + 32 / 3 / 5 - Mozilla/5.0 (Windows NT 6.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 + 32 / 26 / 0 - JS-Kit URL Resolver, http://js-kit.com/ + 32 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 + 32 / 1 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Ubuntu Chromium/23.0.1271.97 Chrome/23.0.1271.97 Safari/537.11 + 32 / 29 / 0 - Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/) + 32 / 27 / 0 - Mozilla/5.0 (compatible; TweetmemeBot/3.0; http://tweetmeme.com/) + 32 / 7 / 0 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.13 + 31 / 5 / 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B145 [FBAN/FBIOS;FBAV/6.0.2;FBBV/183159;FBDV/iPhone4,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/6.1.1;FBSS/2; FBCR/O2;FBID/phone;FBLC/en_US;FBOP/1] + 31 / 9 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20130403 Firefox/19.0 + 31 / 3 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 31 / 3 / 1 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 31 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 30 / 2 / 5 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Win64; x64; Trident/4.0; Avant Browser; .NET CLR 2.0.50727) + 30 / 1 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B146 Safari/8536.25 + 30 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 3.0.04506.30; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 30 / 4 / 3 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 + 30 / 7 / 7 - Opera/9.80 (Windows NT 6.1; WOW64; Edition Yx) Presto/2.12.388 Version/12.14 + 29 / 7 / 8 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; EVO3D_X515m Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 29 / 2 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0 + 29 / 4 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.229 Version/11.64 + 29 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) + 29 / 5 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; HTC_DesireS_S510e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 28 / 3 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; (R1 1.6); AskTbIMB/5.9.1.14019) + 28 / 2 / 3 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 + 28 / 0 / 4 - Opera/9.80 (Windows NT 6.1; U; en) Presto/2.10.289 Version/12.01 + 28 / 24 / 0 - Mozilla/5.0 (compatible; PaperLiBot/2.1; http://support.paper.li/entries/20023257-what-is-paper-li) + 28 / 3 / 2 - Mozilla/5.0 (Android; Tablet; rv:21.0) Gecko/21.0 Firefox/21.0 + 28 / 2 / 0 - Mozilla/5.0 (Linux; Android 4.2.2; Galaxy Nexus Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.54 Mobile Safari/537.31 + 28 / 2 / 0 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 28 / 3 / 4 - Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0 + 28 / 1 / 1 - Mozilla/5.0 (Android; Mobile; rv:20.0) Gecko/20.0 Firefox/20.0 + 27 / 21 / 1 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.11 + 27 / 2 / 0 - Opera/9.80 (Android; Opera Mini/6.5.29194/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 27 / 1 / 3 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5972)) Presto/2.12.388 Version/12.15 + 27 / 2 / 0 - Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.8.131 Version/11.10 + 27 / 1 / 1 - Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.6) Gecko/20100625 MRA 5.5 (build 02842) Firefox/3.6.6 ( .NET CLR 3.5.30729; .NET4.0C) sputnik 2.5.0.142 + 27 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Win64; x64; Trident/6.0) + 27 / 3 / 5 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30 + 27 / 1 / 0 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I8190 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 26 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTbFF/5.15.4.23821; MSOffice 12) + 26 / 2 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 + 26 / 1 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 + 26 / 4 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; BRI/2) + 26 / 20 / 0 - Mozilla/5.0 (compatible; ZumBot/1.0; http://help.zum.com/inquiry) + 26 / 7 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34 + 25 / 2 / 2 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 920) + 25 / 3 / 3 - Opera/9.80 (J2ME/MIDP; Opera Mini/7.1.32052/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 25 / 6 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 + 25 / 2 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Safari/537.31 + 25 / 2 / 2 - Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireHD_A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 25 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 1.1.4322) + 25 / 1 / 4 - Mozilla/5.0 (Linux; Android 4.0.4; ST25i Build/6.1.1.B.1.10) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 25 / 12 / 2 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) + 25 / 2 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; Liquid MT Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 25 / 2 / 2 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 25 / 4 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0 + 24 / 3 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130404 Firefox/23.0 + 24 / 4 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:19.0) Gecko/20100101 Firefox/19.0 + 24 / 0 / 0 - Wget/1.14 (linux-gnu) + 24 / 14 / 0 - Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html) + 24 / 1 / 1 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 24 / 2 / 0 - Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.14 + 24 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; BRI/2) + 24 / 2 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 YB/5.1.3 + 23 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1 + 23 / 1 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch) + 23 / 3 / 3 - Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 + 22 / 1 / 0 - Mozilla/5.0 (X11; Linux i686 (x86_64)) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 + 22 / 2 / 0 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.5.24 Version/10.53 + 22 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/6.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; ms-office; MSOffice 14) + 22 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) + 22 / 2 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10 + 22 / 3 / 4 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 22 / 2 / 2 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20130430 Firefox/20.0 + 22 / 2 / 2 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.28 (KHTML, like Gecko) Chrome/26.0.1397.2 Safari/537.28 + 22 / 6 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.1634 Safari/535.19 YE + 22 / 20 / 0 - MetaURI API/2.0 metauri.com + 21 / 1 / 2 - Mozilla/5.0 (Linux; Android 4.1.2; SAMSUNG-SGH-I727 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 21 / 2 / 2 - Opera/9.80 (Android 4.1.2; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 21 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 + 21 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.47 Safari/535.11 MRCHROME + 21 / 21 / 0 - Mozilla/3.0 (compatible; Indy Library) + 20 / 2 / 0 - Opera/9.80 (Windows NT 6.1; U; Edition Campaign 09; ru) Presto/2.9.168 Version/11.52 + 20 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.0.30729) + 20 / 2 / 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B143 Safari/8536.25 + 20 / 3 / 5 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; SonyST26i Build/11.2.A.0.21) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 20 / 10 / 0 - Microsoft Data Access Internet Publishing Provider Protocol Discovery + 20 / 14 / 0 - curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 + 20 / 0 / 1 - Mozilla/5.0 (compatible; MSIE 10.0; AOL 9.6; AOLBuild 4340.168; Windows NT 6.1; Trident/6.0) + 19 / 1 / 0 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 19 / 1 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 19 / 3 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Ubuntu/12.10 Chromium/22.0.1229.94 Chrome/22.0.1229.94 Safari/537.4 + 19 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 19 / 1 / 0 - Opera/9.80 (Windows NT 6.1; U; Edition Ukraine Local; ru) Presto/2.9.168 Version/11.52 + 19 / 0 / 1 - Opera/9.80 (Windows NT 6.1; MRA 6.0 (build 6089)) Presto/2.12.388 Version/12.15 + 19 / 0 / 0 - Mozilla/5.0 (compatible; special_archiver/3.1.1 http://www.archive.org/details/archive.org_bot) + 19 / 2 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) + 19 / 0 / 1 - Opera/9.80 (Windows NT 5.1; Edition Rambler) Presto/2.12.388 Version/12.15 + 19 / 0 / 1 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.289 Version/12.00 + 19 / 3 / 1 - Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 + 18 / 1 / 0 - Mozilla/5.0 (Windows NT 5.2; rv:17.0) Gecko/20100101 Firefox/17.0 + 18 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS124829; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 18 / 1 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3183; U; ru) Presto/2.8.119 Version/11.10 + 18 / 3 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322; InfoPath.3; MS-RTC LM 8) + 18 / 2 / 2 - Mozilla/5.0 (Linux; Android 4.0.3; U9200 Build/HuaweiU9200) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 18 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 + 18 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3) + 18 / 11 / 0 - Mozilla/5.0 (compatible + 18 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 18 / 4 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) + 18 / 1 / 1 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; NEWMAN N1 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 18 / 9 / 0 - Mozilla/5.0 (compatible; YandexFavicons/1.0; http://yandex.com/bots) + 17 / 1 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 17 / 0 / 0 - Mozilla/5.0 (Linux; Android 4.2.1; Galaxy Nexus Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 17 / 1 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + 17 / 1 / 2 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Iron/27.0.1500.0 Chrome/27.0.1500.0 Safari/537.36 + 17 / 1 / 1 - Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2 (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2 + 17 / 1 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19 + 17 / 3 / 3 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3417; U; ru) Presto/2.8.119 Version/11.10 + 17 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2) + 17 / 1 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 + 17 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 17 / 0 / 1 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME + 17 / 0 / 1 - Mozilla/5.0 (X11; Linux i686; rv:10.0.11) Gecko/20100101 Firefox/10.0.11 + 17 / 0 / 1 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X; ru-ru) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3 + 16 / 1 / 1 - Opera/9.80 (Windows NT 5.2; WOW64) Presto/2.12.388 Version/12.15 + 16 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 AlexaToolbar/alxf-2.17 + 16 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36 + 16 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.2 (KHTML, like Gecko) Chrome/6.0.447.0 Safari/534.2 + 16 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; LEN2) + 16 / 3 / 0 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 16 / 1 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-I8350) + 16 / 0 / 0 - AppEngine-Google; ( http://code.google.com/appengine; appid: s~pc-gizmos) + 16 / 1 / 3 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 16 / 0 / 1 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 + 16 / 1 / 1 - Opera/9.80 (Windows NT 6.2) Presto/2.12.388 Version/12.15 + 15 / 0 / 1 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 u01-04 + 15 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1 + 15 / 0 / 1 - Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 15 / 0 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20130416 Firefox/22.0 + 15 / 3 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:10.0.5) Gecko/20100101 Firefox/10.0.5 + 15 / 0 / 1 - Opera/9.80 (Android; Opera Mini/7.5.33286/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 15 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC Sensation Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 15 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 15 / 1 / 1 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18 (Edition Next) + 15 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9070 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 15 / 1 / 0 - Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 15 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 15 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 + 15 / 0 / 1 - Opera/9.80 (Windows NT 5.1; U; MRA 5.7 (build 03686); ru) Presto/2.10.289 Version/12.01 + 15 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 15 / 1 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18 (Edition Next) + 15 / 0 / 1 - Opera/9.80 (Windows NT 5.1; MRA 6.0 (build 5970)) Presto/2.12.388 Version/12.15 + 14 / 1 / 3 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20130413 Firefox/20.0 + 14 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET CLR 1.1.4322; MS-RTC LM 8) + 14 / 1 / 1 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5 Nichrome/self/19 + 14 / 1 / 0 - Mozilla/5.0 (Linux; Android 4.1.1; GT-N8000 Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 14 / 1 / 1 - Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.13907/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 14 / 6 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1 + 14 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 14 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS) + 14 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS126674; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322) + 14 / 14 / 0 - W3C_Validator/1.3 http://validator.w3.org/services + 14 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I9001 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 14 / 2 / 2 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3594; U; ru) Presto/2.8.119 Version/11.10 + 14 / 0 / 0 - Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20110328 Firefox/6.0.2 + 14 / 1 / 1 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1485.0 Safari/537.36 + 14 / 1 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.65 Safari/537.36 + 14 / 2 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 WebMoney Advisor MRA 5.7 (build 03796); + 14 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; DefView; .NET4.0C; Tablet PC 2.0; ya.ru) + 14 / 1 / 1 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3345; U; en) Presto/2.8.119 Version/11.10 + 13 / 1 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + 13 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0 + 13 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322; InfoPath.2; .NET4.0E; MS-RTC LM 8) + 13 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 13 / 1 / 1 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 YE + 13 / 1 / 1 - Mozilla/5.0 (Linux; Android 4.1.1; HTC Desire X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 13 / 2 / 1 - Opera/9.80 (Android 2.3.6; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 13 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; Dealio Deskball 3.0) + 13 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 13 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; DefView) + 13 / 2 / 0 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 13 / 1 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1478.0 Safari/537.36 + 13 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) + 12 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; BTRS129253; MRSPUTNIK 2, 4, 1, 105; MRA 8.0 (build 6017); SIMBAR={FB3C092F-6650-11E2-B314-00197D7E8F2A}; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Avant Browser) + 12 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3134; U; ru) Presto/2.8.119 Version/11.10 + 12 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 + 12 / 1 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36 + 12 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 + 12 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 + 12 / 2 / 0 - Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1 + 12 / 0 / 0 - Mozilla/5.0 (compatible) Feedfetcher-Google;( http://www.google.com/feedfetcher.html) + 12 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 12 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) + 12 / 1 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20130405 Firefox/23.0 + 12 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; E15i Build/3.0.1.A.0.145; MiniCM7-2.2.1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 12 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2) + 12 / 9 / 0 - Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0 + 12 / 1 / 0 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.5.22 Version/10.50 + 12 / 1 / 0 - Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1210091050) Presto/2.11.355 Version/12.10 + 12 / 1 / 1 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.8 (KHTML, like Gecko) Chrome/23.0.1250.0 Safari/537.8 + 12 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC_One_S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 11 / 1 / 1 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.73 Safari/537.36 + 11 / 1 / 1 - Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 11 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 + 11 / 1 / 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B145 + 11 / 1 / 0 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A523 + 11 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 + 11 / 11 / 0 - Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) + 11 / 1 / 1 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1 + 11 / 1 / 1 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710) + 11 / 0 / 0 - facebookplatform/1.0 ( http://developers.facebook.com) + 11 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 11 / 1 / 0 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + 11 / 0 / 0 - Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C148 + 11 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET CLR 1.1.4322; MS-RTC LM 8; .NET4.0E) + 11 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 11 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1 + 10 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.15) Gecko/20101026 Firefox/3.5.15 + 10 / 4 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.10 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1 + 10 / 2 / 0 - Mozilla/4.0 (compatible; MSIE 5.0; Windows 3.1; TUCOWS Network) + 10 / 8 / 0 - Kimengi/nineconnections.com + 10 / 0 / 0 - AppEngine-Google; ( http://code.google.com/appengine; appid: s~testpzgizmo) + 10 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) + 9 / 0 / 0 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10 + 9 / 5 / 0 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B329 Safari/8536.25 + 9 / 3 / 0 - Mozilla/5.0 (compatible; AhrefsBot/4.0; http://ahrefs.com/robot/) + 9 / 1 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; en-ru; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 9 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MS-RTC LM 8; AskTbFXTV5/5.15.15.35882; MSOffice 12) + 9 / 4 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0 + 9 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.47 Safari/537.36 + 9 / 1 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6) Gecko/20100101 Firefox/10.0.6 Iceweasel/10.0.6 + 9 / 7 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.289 Version/12.01 + 8 / 0 / 0 - Mozilla/4.0 (compatible;) + 8 / 1 / 0 - Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Qt/4.7.1 Safari/533.3 + 8 / 8 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0 + 8 / 0 / 0 - Mozilla/5.0 (X11; Linux x86_64) KHTML/4.10.1 (like Gecko) Konqueror/4.10 + 8 / 0 / 0 - MobileSafari/8536.25 CFNetwork/609 Darwin/13.0.0 + 8 / 6 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/26.0.1410.64) + 7 / 0 / 0 - Microsoft-WebDAV-MiniRedir/6.2.9200 + 7 / 0 / 0 - Mozilla/5.0 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm) SitemapProbe + 7 / 0 / 0 - Sogou web spider/4.0( http://www.sogou.com/docs/help/webmasters.htm#07) + 7 / 3 / 0 - Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:11.0) Gecko/20120313 Firefox/11.0 + 7 / 3 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0 + 7 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; Edition Next) Presto/2.12.388 Version/12.12 + 6 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + 6 / 0 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20130512 Firefox/20.0 + 6 / 0 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17 + 6 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.14 (KHTML, like Gecko) Chrome/24.0.1292.0 Safari/537.14 + 6 / 0 / 0 - Mozilla/5.0 (compatible; Google Desktop/5.9.1005.12335; http://desktop.google.com/) + 6 / 6 / 0 - Opera/9.80 (Windows NT 6.1; Edition Yx) Presto/2.12.388 Version/12.10 + 6 / 5 / 0 - Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.10 + 6 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/6.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; AlexaToolbar/amzni-3.0; MALN; ms-office; MSOffice 14) + 6 / 3 / 0 - peerindex + 6 / 0 / 0 - Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101 + 6 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1 + 5 / 0 / 0 - Mozilla/3.0 (OS/2; U) + 5 / 3 / 0 - msnbot-NewsBlogs/2.0b ( http://search.msn.com/msnbot.htm) + 5 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.61 + 5 / 3 / 0 - Opera/9.80 (Android 2.3.5; Linux; Opera Mobi/ADR-1210241511) Presto/2.11.355 Version/12.10 + 5 / 1 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 + 5 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 u01-09 + 5 / 5 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 + 5 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17 + 5 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) + 5 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; InfoPath.2) + 5 / 2 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.00 + 4 / 0 / 0 - Mozilla/5.0 (Linux; Android 4.1.1; A701 Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 4 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1518.0 Safari/537.36 + 4 / 2 / 0 - Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.10.289 Version/12.00 + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MSOffice 12) + 4 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648) + 4 / 0 / 0 - MSFrontPage/12.0 + 4 / 0 / 0 - Mozilla/4.61 (Macintosh; I; PPC) + 4 / 0 / 0 - Mozilla/4.0 (compatible; MS FrontPage 12.0) + 4 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648) + 4 / 0 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.102 Safari/535.2 + 4 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) + 4 / 4 / 0 - DavClnt + 4 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.40607; .NET CLR 3.0.04506.648) + 4 / 0 / 0 - Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17 + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E) + 4 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.40607; .NET CLR 3.0.04506.648) + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2) + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; 1A820D29-8445-92BE-2384-712BBCEDFDB1; MRSPUTNIK 2, 4, 1, 12; BTRS124447; GTB7.4; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; AskTbFXTV5/5.8.0.12304; MSOffice 12) + 4 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3183; U; en) Presto/2.8.119 Version/11.10 + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6.6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 4 / 4 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1 + 4 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 AlexaToolbar/alxg-3.1 + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; AlexaToolbar/amzni-3.0; MALN; MSOffice 12) + 4 / 1 / 1 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SLCC1; .NET CLR 1.1.4322; .NET CLR 2.0.40607; .NET CLR 3.0.04506.648) + 4 / 3 / 0 - Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter); http://www.exabot.com/go/robot) + 4 / 1 / 1 - Mozilla/5.0 (Linux; U; Android 2.3.3; ru-ru; LG-P500 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2 + 4 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3271; U; en) Presto/2.8.119 Version/11.10 + 4 / 0 / 0 - Opera/9.80 (Windows NT 6.1; MRA 5.8 (build 4664)) Presto/2.12.388 Version/12.10 + 4 / 0 / 0 - MobileSafari/8536.25 CFNetwork/609.1.4 Darwin/13.0.0 + 4 / 0 / 0 - Sogou web spider/4.0 + 4 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.1; .NET4.0C) + 3 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02 + 3 / 1 / 0 - Mozilla/5.0 (compatible; archive.org_bot http://www.archive.org/details/archive.org_bot) + 3 / 2 / 0 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.11 + 3 / 0 / 0 - Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C) + 3 / 0 / 0 - Googlebot-Video/1.0 + 3 / 1 / 0 - Xenu Link Sleuth/1.3.8 + 3 / 0 / 0 - Opera/9.80 (Windows NT 5.1; MRA 6.0 (build 6089)) Presto/2.12.388 Version/12.15 + 3 / 0 / 0 - WordPress/3.5.1; http://peterpen-ctf.net + 3 / 2 / 0 - Lynx/2.8.8dev.15 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.20 + 3 / 3 / 0 - Java/1.6.0_26 + 3 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0 + 3 / 0 / 0 - Xenu Link Sleuth/1.3.9 beta + 3 / 0 / 0 - Opera/9.80 (Series 60; Opera Mini/7.0.29482/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 3 / 0 / 0 - WordPress/3.5.1; https://peterpen-ctf.net + 3 / 2 / 0 - Opera/9.80 (Windows NT 5.1; Edition Yx) Presto/2.12.388 Version/12.11 + 3 / 0 / 0 - URLGrabber + 3 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 2.2.1; ru-ru; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 3 / 0 / 0 - Opera/9.80 (Windows NT 5.1; MRA 6.0 (build 5711)) Presto/2.12.388 Version/12.15 + 3 / 0 / 0 - Microsoft Office Word 2013 + 3 / 2 / 0 - Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0 + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser) + 3 / 0 / 0 - AndroidDownloadManager + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 3 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 3 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0 + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) + 3 / 0 / 0 - GFGET/0.1 + 3 / 0 / 0 - Wget/1.10.1 + 3 / 0 / 0 - Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; Edition MacAppStore; ru) Presto/2.9.168 Version/11.52 + 3 / 0 / 0 - Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15 + 3 / 2 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12 + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 508; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) + 3 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; ms-office; MSOffice 14) + 3 / 0 / 0 - ia_archiver(OS-Wayback) + 2 / 1 / 0 - Links (2.7; Linux 3.8.0-19-generic i686; GNU C 4.7.1; text) + 2 / 2 / 0 - Mozilla/5.0 (compatible; YandexBot/3.0; MirrorDetector; http://yandex.com/bots) + 2 / 0 / 0 - Mozilla/5.0 (en-us) AppleWebKit/534.14 (KHTML, like Gecko; Google Wireless Transcoder) Chrome/9.0.597 Safari/534.14 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.03 [de] + 2 / 0 / 0 - Mozilla/5.0 (Android; Tablet; rv:17.0) Gecko/17.0 Firefox/17.0 + 2 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/6.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; AlexaToolbar/amzni-3.0; MALN) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; Tablet PC 2.0) + 2 / 0 / 0 - Opera/9.80 (Windows NT 5.1; Edition Yx) Presto/2.12.388 Version/12.15 + 2 / 0 / 1 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1) + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 + 2 / 0 / 0 - Mozilla/5.0 (Linux; Android 4.0.4; MT27i Build/6.1.1.B.1.54) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3134; U; en) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + 2 / 2 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 + 2 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 5.8 (build 4133)) Presto/2.12.388 Version/12.15 + 2 / 0 / 0 - User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 0 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20130507 Firefox/20.0 + 2 / 2 / 0 - Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; info@netcraft.com) + 2 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1 + 2 / 1 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5976)) Presto/2.12.388 Version/12.11 + 2 / 1 / 0 - DoCoMo/2.0 P900i(c100;TB;W24H11) (compatible; ichiro/mobile goo; http://search.goo.ne.jp/option/use/sub4/sub4-1/) + 2 / 0 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0 + 2 / 1 / 0 - Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11 + 2 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0 + 2 / 1 / 0 - Opera/9.80 (Windows NT 6.1; MRA 6.0 (build 5976)) Presto/2.12.388 Version/12.10 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRA 5.5 (build 02842); InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 1 / 1 - Opera/9.80 (X11; Linux x86_64; Edition Next) Presto/2.12.388 Version/12.15 + 2 / 2 / 0 - Java/1.6.0_35 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0 05/02/2013 3:20:45 AM + 2 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; PAP4040_DUO Build/PrestigioPAP4040DUO) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 2 / 1 / 0 - Opera/9.80 (Windows NT 6.1; Win64; x64) Presto/2.12.388 Version/12.11 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322; InfoPath.3; .NET4.0E; MS-RTC LM 8; Microsoft Outlook 14.0.6025; ms-office; MSOffice 14) + 2 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11) Firefox/1.5.0.11; 360Spider + 2 / 0 / 0 - Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0 TinEye/1.0 (via http://www.tineye.com/) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0; Avant Browser; .NET CLR 2.0.50727) + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3417; U; ru) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS129253; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET4.0C; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 1 / 0 - Mozilla/5.0 + 2 / 1 / 0 - Mozilla/5.0 (Windows NT 6.0; rv:16.0) Gecko/20100101 Firefox/16.0 + 2 / 2 / 0 - Mozilla/4.0 (compatible; Netcraft Web Server Survey) + 2 / 0 / 0 - Opera/9.80 (Windows NT 5.1; Edition Yx) Presto/2.12.388 Version/12.14 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MANM) + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3638; U; ru) Presto/2.8.119 Version/11.10 + 2 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.1.1084.5409 Chrome/19.1.1084.5409 Safari/536.5 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5 Nichrome/self/19 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 4, 1, 209; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C) + 2 / 0 / 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A525 Safari/8536.25 + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3134; U; ru) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/6.5.29194/29.3507; U; ru) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; eSobiSubscriber 1.0.0.40; BRI/2; MAAR; .NET4.0C) + 2 / 2 / 0 - Crowsnest/0.5 ( http://www.crowsnest.tv/) + 2 / 1 / 0 - Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.10 + 2 / 0 / 0 - Mozilla/5.0 (Linux; Android 4.1.2; GT-N8000 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36 + 2 / 1 / 0 - Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3) + 2 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.289 Version/12.01 + 2 / 0 / 0 - Opera/9.80 (Windows NT 6.1; Edition Ukraine Local) Presto/2.12.388 Version/12.12 + 2 / 0 / 0 - Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; ru-ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5 + 2 / 1 / 0 - netEstate NE Crawler ( http://www.website-datenbank.de/) + 2 / 1 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + 2 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7; Google-SearchByImage) Gecko/2009021910 Firefox/3.0.7 + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3345; U; en) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1485.0 Safari/537.36 + 2 / 1 / 0 - Links (2.7; Linux 3.8.8 x86_64; GNU C 4.7.1; text) + 2 / 1 / 0 - SurcentroBot + 2 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MANMJS) + 2 / 2 / 0 - Mozilla/5.0 (compatible; Firefox Addon; Windows XP 5.1) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 516; GTB7.4; MRA 5.10 (build 5310); .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 2 / 0 / 0 - Mozilla/5.0 (Java; U; ru; nokiac5-00) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.6.0.199/69/444/UCWEB Mobile UNTRUSTED/1.0 3gpp-gba + 2 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.0.29530/29.3709; U; ru) Presto/2.8.119 Version/11.10 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre + 2 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MASMJS) + 2 / 2 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 + 2 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06) + 2 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.3) + 2 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 + 2 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30618; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30 Nichrome/self/12 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0 IceDragon/20.0.1.14 + 1 / 0 / 0 - Opera/9.80 (Android; Opera Mini/7.0.29952/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.96 Safari/537.4 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.13 + 1 / 1 / 0 - SEO Browser + 1 / 0 / 0 - CodeGator Crawler v1.0 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; InfoPath.1) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; MRA 6.0 (build 6068)) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; MRA 6.0 (build 5972)) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10 + 1 / 1 / 0 - Microsoft Office Mobile /14.0 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/17.0 Firefox/17.0 + 1 / 1 / 0 - Opera/9.80 (Windows NT 5.1; U; YB/3.5.1; ru) Presto/2.10.229 Version/11.64 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 + 1 / 0 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 1 / 0 / 0 - Opera/9.80 (J2ME/MIDP; Opera Mini/7.1.32052/29.3417; U; ru) Presto/2.8.119 Version/11.10 + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ENUS) + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.11 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; U; MRA 5.8 (build 4664); ru) Presto/2.10.229 Version/11.60 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0 + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.1; MRA 6.0 (build 5970)) Presto/2.12.388 Version/12.11 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5704)) Presto/2.12.388 Version/12.11 + 1 / 1 / 0 - Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1) Gecko/20090630 Fedora/3.5-1.fc11 Firefox/3.5 GTB5 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 999.1; Unknown) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/6.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; AlexaToolbar/amzni-3.0; MALN; ms-office) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; MRA 8.0 (build 6008)) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319) + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; MRA 5.7 (build 03789)) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch; MASMJS) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Nevz Group Policy option; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; Nevz Group Policy option) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; Edition Yx) Presto/2.12.388 Version/12.10 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MS-RTC LM 8; ms-office; MSOffice 14) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; Edition Next; Edition Yx; ru) Presto/2.11.310 Version/12.50 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20121026 Firefox/16.0 SeaMonkey/2.13.2 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 TinEye/1.0 (via http://www.tineye.com/) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; {E3AFBC29-379F-6981-3477-F67AEAD253D3}; .NET CLR 1.1.4322; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; DepositFiles/FileManager 0.9.9.206 YB/5.0.3) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 2, 0, 86; MRIE8PACK 2.0.1) + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.60 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.51 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; MRA 6.0 (build 5972)) Presto/2.12.388 Version/12.10 + 1 / 0 / 0 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 + 1 / 1 / 0 - Jakarta Commons-HttpClient/3.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729) + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto/2.12.388 Version/12.11 + 1 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRA 4.9 (build 01863); MRSPUTNIK 2, 4, 1, 162) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 1 / 0 / 0 - Opera/9.80 (X11; Linux i686; U; ru) Presto/2.7.62 Version/11.01 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET CLR 1.1.4322; InfoPath.3; .NET4.0E; ms-office; MSOffice 14) + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50 + 1 / 0 / 0 - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; ru-ru) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.1.1084.5409 Chrome/19.1.1084.5409 Safari/536.5 + 1 / 1 / 0 - Opera/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto/2.10.289 Version/12.02 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1.0 Safari/537.11 + 1 / 1 / 0 - MFE_expand/0.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.60 Safari/534.24 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 + 1 / 0 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 + 1 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 + 1 / 0 / 0 - Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; ru-ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; MRA 6.0 (build 5998)) Presto/2.12.388 Version/12.11 + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MASEJS) + 1 / 0 / 0 - Linguee Bot (http://www.linguee.com/bot; bot@linguee.com) + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.289 Version/12.00 + 1 / 0 / 0 - Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; MRA 5.9 (build 4953); ru) Presto/2.10.229 Version/11.60 + 1 / 0 / 0 - HttpComponents/1.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0 05/02/2013 3:20:44 AM + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/6.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; ms-office) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + 1 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 BuiltWith/1.2 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.151 Safari/534.16 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 5.2; rv:12.0) Gecko/20100101 Firefox/12.0 + 1 / 1 / 0 - Opera/9.80 (Windows NT 5.1; U; MRA 8.0 (build 5784); ru) Presto/2.10.289 Version/12.02 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10 + 1 / 1 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.82 Safari/537.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2; rv:14.0) Gecko/20100101 Firefox/14.0.1 + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; KB974488) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.10 (build 5218); MRSPUTNIK 2, 4, 0, 501; InfoPath.2) + 1 / 0 / 0 - QuerySeekerSpider ( http://queryseeker.com/bot.html ) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) + 1 / 1 / 0 - PageAnalyzer/1.3b (www.the-escape.co.uk) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; MRA 6.0 (build 6005); User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C; .NET4.0E; MRIE8PACK 2.0.1) + 1 / 1 / 0 - CheckSite Verification Agent ( http://www.checksite.us) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Iron/25.0.1400.0 Chrome/25.0.1400.0 Safari/537.22 + 1 / 1 / 0 - EventMachine HttpClient + 1 / 0 / 0 - Mozilla/5.0 (Android; Mobile; rv:20.0.1) Gecko/20.0.1 Firefox/20.0.1 + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.1; U; YB/3.5.1; ru) Presto/2.6.30 Version/10.63 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 8.0 (build 5988)) Presto/2.12.388 Version/12.15 + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.1; U; Edition Next; ru) Presto/2.11.310 Version/12.50 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; U; Edition Yx; ru) Presto/2.10.289 Version/12.02 + 1 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22,gzip(gfe) (via docs.google.com/viewer) + 1 / 1 / 0 - Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.10 + 1 / 1 / 0 - Apache-HttpClient/4.2.3 (java 1.5) + 1 / 1 / 0 - Mozilla/5.0 (compatible; NetSeer crawler/2.0; http://www.netseer.com/crawler.html; crawler@netseer.com) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 (C67D51D4-DE8A-25CA-C613-17B73EBB7584) Firefox/7.0.1 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 + 1 / 0 / 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 CoolNovo/2.0.7.11 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20100101 Firefox/20.0 SeaMonkey/2.17.1 + 1 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1469.0 Safari/537.36 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.65 Safari/537.36 + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; BOIE9;RURU) + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20 + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; MRA 8.0 (build 5880); ru) Presto/2.10.289 Version/12.02 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en] + 1 / 1 / 0 - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Contact: feedback@getprismatic.com + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C) + 1 / 0 / 0 - Opera/9.80 (Android 4.0.3; Linux; Opera Tablet/ADR-1301080958) Presto/2.11.355 Version/12.10 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 4, 1, 105; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTbPTV/5.15.1.22229; .NET4.0C) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.2; MRSPUTNIK 2, 4, 1, 105; InfoPath.1) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.1634 Safari/535.19 YI + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.1.1084.5409 Chrome/19.1.1084.5409 Safari/536.5 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 6048)) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.2; WOW64; Edition Yx) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.10 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; Edition Next; ru) Presto/2.9.220 Version/12.00 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; MRA 6.0 (build 5680); ru) Presto/2.10.289 Version/12.00 + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0,gzip(gfe) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 6015)) Presto/2.12.388 Version/12.15 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590) + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729) + 1 / 0 / 0 - NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; U; MRA 5.9 (build 4953); ru) Presto/2.10.229 Version/11.60 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 5.10 (build 5310)) Presto/2.12.388 Version/12.10 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto/2.10.229 Version/11.62 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 AlexaToolbar/alxg-3.1 + 1 / 1 / 0 - Microsoft Office Mobile/15.0 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.2; rv:20.0) Gecko/20100101 Firefox/20.0 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.22 Version/10.51 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729; .NET4.0E) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRSPUTNIK 2, 4, 0, 516; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0) + 1 / 0 / 0 - Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-I9100 Build/JZO54K) + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; EIE10;RURUWOL) + 1 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 + 1 / 0 / 0 - (null) + 1 / 0 / 0 - Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) + 1 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; MS-RTC LM 8; BRI/2; .NET4.0E) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.0; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 + 1 / 0 / 0 - Opera/9.80 (Series 60; Opera Mini/7.1.32449/29.3530; U; ru) Presto/2.8.119 Version/11.10 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.2.2.0 Safari/537.31 + 1 / 0 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1105.412 YaBrowser/1.5.1105.412 Safari/537.4 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1300.0 Iron/23.0.1300.0 Safari/537.11 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.289 Version/12.02 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; MSOffice 12) + 1 / 0 / 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 1 / 0 / 0 - Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.01 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; MRA 6.0 (build 6001); ru) Presto/2.10.289 Version/12.01 + 1 / 0 / 0 - Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.9.168 Version/11.50 + 1 / 1 / 0 - Opera/9.80 (Windows NT 6.1; Win64; x64) Presto/2.12.388 Version/12.10 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.229 Version/11.62 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7 YE + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.3; .NET CLR 2.0.50727) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; ru; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 11.60 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; MRA 5.8 (build 4157)) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 5.1; en-US) AppleWebKit/535.12 (KHTML, like Gecko) Version/5.0.1 Safari/535.12 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 4, 0, 501; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 5976)) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; MSOffice 12) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; Win64; x64; Edition Yx) Presto/2.12.388 Version/12.11 + 1 / 0 / 0 - rarely used + 1 / 1 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 + 1 / 1 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) + 1 / 0 / 0 - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRSPUTNIK 2, 4, 1, 105; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; Tablet PC 2.0) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 AlexaToolbar/pDvbmwUg-1.3 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; NP06) + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0 + 1 / 0 / 0 - Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20100101 Firefox/20.0 + 1 / 0 / 0 - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; MSOffice 12) + 1 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0 + 1 / 0 / 0 - Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADY-1305080823) Presto/2.11.355 Version/12.10 + 1 / 0 / 0 - Opera/9.80 (J2ME/MIDP; Opera Mini/4.3.13057/29.3530; U; ru) Presto/2.8.119 Version/11.10 + 1 / 1 / 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 YB/3.5.1 (.NET CLR 3.5.30729) + 1 / 0 / 0 - Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.0 (build 6042)) Presto/2.12.388 Version/12.15 + + botreq / bothits (26916 / 12055) - user_agent (40) +5448 / 0 - msnbot-media/1.1 ( http://search.msn.com/msnbot.htm) +4162 / 2557 - Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html) +3202 / 0 - Mozilla/5.0 (compatible; YandexImages/3.0; http://yandex.com/bots) +3038 / 2351 - Mozilla/5.0 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm) +2650 / 2044 - Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) +1937 / 1676 - Mozilla/5.0 (compatible; YandexBot/3.0; http://yandex.com/bots) +1900 / 0 - Googlebot-Image/1.0 +1543 / 1408 - Mozilla/5.0 (compatible; SearchBot) + 519 / 280 - SolomonoBot/1.04 (http://www.solomono.ru) + 400 / 387 - Mozilla/5.0 (compatible; Linux i686; Yandex.Gazeta Bot/1.0; http://gazeta.yandex.ru) + 303 / 293 - Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; http://go.mail.ru/help/robots) + 250 / 218 - msnbot/2.0b ( http://search.msn.com/msnbot.htm) + 244 / 0 - Googlebot/2.1 ( http://www.google.com/bot.html) + 185 / 154 - SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) + 183 / 61 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://www.changedetection.com/bot.html ) + 175 / 148 - DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; http://www.google.com/bot.html) + 132 / 113 - Mozilla/5.0 (compatible; Mail.RU_Bot/2.0; http://go.mail.ru/help/robots) + 121 / 58 - Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com) + 75 / 56 - Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php? ) + 72 / 40 - Mozilla/5.0 (compatible; YandexDirect/3.0; http://yandex.com/bots) + 51 / 41 - Mozilla/5.0 (compatible; TweetedTimes Bot/1.0; http://tweetedtimes.com) + 47 / 39 - Wotbox/2.01 ( http://www.wotbox.com/bot/) + 40 / 0 - Mozilla/5.0 (compatible; YandexImageResizer/2.0; http://yandex.com/bots) + 40 / 19 - rogerbot/1.0 (http://www.seomoz.org/dp/rogerbot, rogerbot-crawler shiny@seomoz.org) + 39 / 19 - Twitterbot/1.0 + 32 / 27 - Mozilla/5.0 (compatible; TweetmemeBot/3.0; http://tweetmeme.com/) + 28 / 24 - Mozilla/5.0 (compatible; PaperLiBot/2.1; http://support.paper.li/entries/20023257-what-is-paper-li) + 26 / 20 - Mozilla/5.0 (compatible; ZumBot/1.0; http://help.zum.com/inquiry) + 19 / 0 - Mozilla/5.0 (compatible; special_archiver/3.1.1 http://www.archive.org/details/archive.org_bot) + 18 / 9 - Mozilla/5.0 (compatible; YandexFavicons/1.0; http://yandex.com/bots) + 9 / 3 - Mozilla/5.0 (compatible; AhrefsBot/4.0; http://ahrefs.com/robot/) + 7 / 0 - Mozilla/5.0 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm) SitemapProbe + 5 / 3 - msnbot-NewsBlogs/2.0b ( http://search.msn.com/msnbot.htm) + 4 / 3 - Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter); http://www.exabot.com/go/robot) + 3 / 0 - Googlebot-Video/1.0 + 3 / 1 - Mozilla/5.0 (compatible; archive.org_bot http://www.archive.org/details/archive.org_bot) + 2 / 1 - SurcentroBot + 2 / 2 - Mozilla/5.0 (compatible; YandexBot/3.0; MirrorDetector; http://yandex.com/bots) + 1 / 0 - Linguee Bot (http://www.linguee.com/bot; bot@linguee.com) + 1 / 0 - QuerySeekerSpider ( http://queryseeker.com/bot.html ) + + mobihits (1107) - user_agent (156) +181 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 +176 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 + 76 - Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 + 60 - Mozilla/5.0 (Linux; U; Android 2.2; ru-ru; HTC_Gratia_A6380 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 30 - Mozilla/5.0 (Linux; Android 4.0.4; HTC Incredible S Build/IMM76D) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 26 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 + 25 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart T8698) + 24 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 + 24 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 + 21 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 19 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9300 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 18 - Opera/9.80 (Android 4.0.4; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 17 - Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 17 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A8426 Safari/8536.25 + 17 - Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1212030820) Presto/2.11.355 Version/12.10 + 16 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9100 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 15 - Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 13 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 13 - Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 + 12 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800) + 11 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 11 - Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; HTC Sensation Z710e Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 11 - Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 + 11 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 10 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/25.0.1364.124 Mobile/10B329 Safari/8536.25 + 9 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; SonyEricssonLT26w Build/6.1.A.2.55) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 9 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 9 - Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 + 8 - Mozilla/5.0 (Linux; U; Android 3.2; ru-ru; GT-P7300 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 + 8 - Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) + 7 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; EVO3D_X515m Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 7 - Mozilla/5.0 (Linux; Android 4.0.4; ZTE Grand Era Build/IMM76L) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Mobile Safari/537.31 OPR/14.0.1074.54070 + 6 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 5 - Mozilla/5.0 (Linux; U; Android 2.2.1; ru-ru; HTC Wildfire Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 5 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; HTC_DesireS_S510e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 5 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B145 [FBAN/FBIOS;FBAV/6.0.2;FBBV/183159;FBDV/iPhone4,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/6.1.1;FBSS/2; FBCR/O2;FBID/phone;FBLC/en_US;FBOP/1] + 5 - Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.53 Mobile/10B329 Safari/8536.25 + 5 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B350 Safari/8536.25 + 5 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B329 Safari/8536.25 + 5 - Mozilla/5.0 (Linux; Android 4.0.4; U8836D Build/HuaweiU8836D) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 5 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9100 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 4 - Opera/9.80 (Android; Opera Mini/7.0.29733/29.3271; U; en) Presto/2.8.119 Version/11.10 + 4 - Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 + 4 - Mozilla/5.0 (Linux; Android 4.0.4; ST26i Build/11.0.A.3.18) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 4 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Safari/537.22 + 4 - Opera/9.80 (Android; Opera Mini/7.5.33286/29.3345; U; en) Presto/2.8.119 Version/11.10 + 4 - Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 4 - Mozilla/5.0 (Linux; Android 4.1.2; ST26i Build/11.2.A.0.21) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 4 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; SP-A20i Build/MF_ICS_02.19) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 3 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B146 Safari/8536.25 + 3 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 3 - Opera/9.80 (Android; Opera Mini/6.5.27452/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 3 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3417; U; ru) Presto/2.8.119 Version/11.10 + 3 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 + 3 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 3 - Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0 + 3 - Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 + 3 - Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B208 Safari/7534.48.3 + 3 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; SonyST26i Build/11.2.A.0.21) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 3 - Mozilla/5.0 (Android; Tablet; rv:21.0) Gecko/21.0 Firefox/21.0 + 3 - Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 3 - Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B141 Safari/8536.25 + 3 - Opera/9.80 (Android 2.3.5; Linux; Opera Mobi/ADR-1210241511) Presto/2.11.355 Version/12.10 + 2 - Mozilla/5.0 (Linux; Android 4.0.3; U9200 Build/HuaweiU9200) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 2 - Mozilla/5.0 (iPod; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 + 2 - Mozilla/5.0 (Linux; Android 4.2.2; Galaxy Nexus Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.54 Mobile Safari/537.31 + 2 - Opera/9.80 (Android; Opera Mini/6.5.29194/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 2 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3594; U; ru) Presto/2.8.119 Version/11.10 + 2 - Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireHD_A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 2 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 2 - Mozilla/5.0 (Linux; Android 4.0.4; ZTE Grand Era Build/IMM76L) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 2 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I9300 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 2 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 920) + 2 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; Liquid MT Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 2 - Mozilla/5.0 (Android; Tablet; rv:20.0) Gecko/20.0 Firefox/20.0 + 2 - Opera/9.80 (Android 4.1.2; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 2 - Mozilla/5.0 (Linux; Android 4.0.3; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 2 - Mozilla/5.0 (Linux; U; Android 2.3.5; en-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 2 - Opera/9.80 (Android 2.3.6; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 2 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B143 Safari/8536.25 + 1 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710) + 1 - Mozilla/5.0 (Linux; Android 4.1.2; SAMSUNG-SGH-I727 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 1 - Mozilla/5.0 (Linux; Android 4.0.4; ST25i Build/6.1.1.B.1.10) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 1 - Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/26.0.1410.50 Mobile/10B146 Safari/8536.25 + 1 - Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-I8350) + 1 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 1 - Mozilla/5.0 (Android; Mobile; rv:20.0) Gecko/20.0 Firefox/20.0 + 1 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC Sensation Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 - Mozilla/5.0 (Linux; U; Android 4.0.4; en-ru; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9070 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 1 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 1 - Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 1 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A523 + 1 - Mozilla/5.0 (Linux; Android 4.2.2; Nexus 7 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 1 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 - Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/ADR-1301071820) Presto/2.11.355 Version/12.10 + 1 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3530; U; en) Presto/2.8.119 Version/11.10 + 1 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; NEWMAN N1 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 1 - Mozilla/5.0 (Linux; U; Android 2.3.3; ru-ru; LG-P500 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2 + 1 - Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; E15i Build/3.0.1.A.0.145; MiniCM7-2.2.1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 1 - Mozilla/5.0 (Linux; Android 4.1.1; GT-N8000 Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + 1 - Microsoft Office Mobile/15.0 + 1 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3183; U; ru) Presto/2.8.119 Version/11.10 + 1 - Opera/9.80 (Android 2.3.3; Linux; Opera Mobi/ADR-1210091050) Presto/2.11.355 Version/12.10 + 1 - Opera/9.80 (Android; Opera Mini/7.5.33361/29.3345; U; en) Presto/2.8.119 Version/11.10 + 1 - Microsoft Office Mobile /14.0 + 1 - Mozilla/5.0 (Linux; Android 4.1.1; HTC Desire X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 1 - Mozilla/5.0 (Linux; Android 4.1.2; GT-I8190 Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 + 1 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B145 + 1 - Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 1 - DoCoMo/2.0 P900i(c100;TB;W24H11) (compatible; ichiro/mobile goo; http://search.goo.ne.jp/option/use/sub4/sub4-1/) + 0 - Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3183; U; en) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 0 - Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; ru-ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 + 0 - Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; ru-ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5 + 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A525 Safari/8536.25 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3271; U; en) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C148 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3134; U; ru) Presto/2.8.119 Version/11.10 + 0 - Opera/9.80 (Android 4.0.3; Linux; Opera Tablet/ADR-1301080958) Presto/2.11.355 Version/12.10 + 0 - Opera/9.80 (Android; Opera Mini/6.5.29194/29.3507; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; Android 4.1.1; A701 Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 + 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 + 0 - Opera/9.80 (Android; Opera Mini/7.5.33286/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3345; U; en) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; Android 4.0.4; MT27i Build/6.1.1.B.1.54) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3134; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 0 - Opera/9.80 (Android; Opera Mini/7.0.29530/29.3709; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 0 - Mozilla/5.0 (Java; U; ru; nokiac5-00) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.6.0.199/69/444/UCWEB Mobile UNTRUSTED/1.0 3gpp-gba + 0 - Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I9001 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3417; U; ru) Presto/2.8.119 Version/11.10 + 0 - Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-I9100 Build/JZO54K) + 0 - Mozilla/5.0 (Linux; Android 4.1.2; GT-N8000 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36 + 0 - Mozilla/5.0 (Linux; U; Android 2.2.1; ru-ru; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 0 - MobileSafari/8536.25 CFNetwork/609 Darwin/13.0.0 + 0 - Mozilla/5.0 (Android; Tablet; rv:17.0) Gecko/17.0 Firefox/17.0 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32200/29.3134; U; en) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Android; Mobile; rv:20.0.1) Gecko/20.0.1 Firefox/20.0.1 + 0 - Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADY-1305080823) Presto/2.11.355 Version/12.10 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32195/29.3638; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 + 0 - Opera/9.80 (Android; Opera Mini/7.0.29952/29.3271; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X; ru-ru) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3 + 0 - Opera/9.80 (Android; Opera Mini/7.5.32193/29.3345; U; ru) Presto/2.8.119 Version/11.10 + 0 - Mozilla/5.0 (Linux; Android 4.2.1; Galaxy Nexus Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 + 0 - Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + 0 - MobileSafari/8536.25 CFNetwork/609.1.4 Darwin/13.0.0 + 0 - Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC_One_S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + 0 - AndroidDownloadManager + 0 - Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; PAP4040_DUO Build/PrestigioPAP4040DUO) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php new file mode 100644 index 00000000000..77cbc753858 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php @@ -0,0 +1,202 @@ + + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * @link http://mobiledetect.net + */ +class UserAgentTest extends PHPUnit_Framework_TestCase +{ + protected static $ualist = array(); + protected static $json; + + public static function generateJson() + { + //in case this gets run multiple times + if (isset(self::$json)) { + return self::$json; + } + + //the json and PHP formatted files + $jsonFile = dirname(__FILE__) . '/ualist.json'; + $phpFile = dirname(__FILE__) . '/UA_List.inc.php'; + + //check recency of the file + if (file_exists($jsonFile) && is_readable($jsonFile)) { + //read the json file + $json = json_decode(file_get_contents($jsonFile), true); + + //check that the hash matches + $hash = isset($json['hash']) ? $json['hash'] : null; + + if ($hash == sha1_file($phpFile)) { + //file is up to date, just read the json file + self::$json = $json['user_agents']; + + return self::$json; + } + } + + //uses the UA_List.inc.php to generate a json file + if (file_exists($jsonFile) && !is_writable($jsonFile)) { + throw new RuntimeException("Need to be able to create/update $jsonFile from UA_List.inc.php."); + } + + if (!is_writable(dirname($jsonFile))) { + throw new RuntimeException("Insufficient permissions to create this file: $jsonFile"); + } + + //currently stored as a PHP array + $list = include $phpFile; + + $json = array(); + + foreach ($list as $vendor => $vendorList) { + foreach ($vendorList as $userAgent => $props) { + if (is_int($userAgent)) { + //this means that the user agent is the props + $userAgent = $props; + $props = array(); + } + + $tmp = array( + 'vendor' => $vendor, + 'user_agent' => $userAgent + ); + + if (isset($props['isMobile'])) { + $tmp['mobile'] = $props['isMobile']; + } + + if (isset($props['isTablet'])) { + $tmp['tablet'] = $props['isTablet']; + } + + if (isset($props['version'])) { + $tmp['version'] = $props['version']; + } + + if (isset($props['model'])) { + $tmp['model'] = $props['model']; + } + + $json[] = $tmp; + } + } + + //save the hash + $hash = sha1_file($phpFile); + $json = array( + 'hash' => $hash, + 'user_agents' => $json + ); + + if (defined('JSON_PRETTY_PRINT')) { + $jsonString = json_encode($json, JSON_PRETTY_PRINT); + } else { + $jsonString = json_encode($json); + } + + file_put_contents($jsonFile, $jsonString); + self::$json = $json['user_agents']; + + return self::$json; + } + + public static function setUpBeforeClass() + { + //generate json file first + self::generateJson(); + + //get the generated JSON data + $json = self::$json; + + //make a list that is usable by functions (THE ORDER OF THE KEYS MATTERS!) + foreach ($json as $userAgent) { + $tmp = array(); + $tmp[] = isset($userAgent['user_agent']) ? $userAgent['user_agent'] : null; + $tmp[] = isset($userAgent['mobile']) ? $userAgent['mobile'] : null; + $tmp[] = isset($userAgent['tablet']) ? $userAgent['tablet'] : null; + $tmp[] = isset($userAgent['version']) ? $userAgent['version'] : null; + $tmp[] = isset($userAgent['model']) ? $userAgent['model'] : null; + $tmp[] = isset($userAgent['vendor']) ? $userAgent['vendor'] : null; + + self::$ualist[] = $tmp; + } + } + + public function userAgentData() + { + if (!count(self::$ualist)) + self::setUpBeforeClass(); + + return self::$ualist; + } + + /** + * @medium + * @dataProvider userAgentData + */ + public function testUserAgents($userAgent, $isMobile, $isTablet, $version, $model, $vendor) + { + //make sure we're passed valid data + if (!is_string($userAgent) || !is_bool($isMobile) || !is_bool($isTablet)) { + $this->markTestIncomplete("The User-Agent $userAgent does not have sufficient information for testing."); + + return; + } + + //setup + $md = new Mobile_Detect; + $md->setUserAgent($userAgent); + + //is mobile? + $this->assertEquals($md->isMobile(), $isMobile); + + //is tablet? + $this->assertEquals($md->isTablet(), $isTablet); + + if (isset($version)) { + foreach ($version as $condition => $assertion) { + $this->assertEquals($assertion, $md->version($condition), 'FAILED UA (version("'.$condition.'")): '.$userAgent); + } + } + + //version property tests + if (isset($version)) { + foreach ($version as $property => $stringVersion) { + $v = $md->version($property); + $this->assertSame($stringVersion, $v); + } + } + + //@todo: model test, not sure how exactly yet + //@todo: vendor test. The below is theoretical, but fails 50% of the tests... + /*if (isset($vendor)) { + $method = "is$vendor"; + $this->assertTrue($md->{$method}(), "Expected Mobile_Detect::{$method}() to be true."); + }*/ + } +} diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php new file mode 100644 index 00000000000..06724144505 --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php @@ -0,0 +1,114 @@ + + * @license MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt + * @link http://mobiledetect.net + */ +class VendorsTest extends PHPUnit_Framework_TestCase +{ + protected $detect; + protected static $items; + + public function setUp() + { + $this->detect = new Mobile_Detect; + + } + + public static function setUpBeforeClass() + { + //this method could be called multiple times + if (!self::$items) { + self::$items = include dirname(__FILE__).'/UA_List.inc.php'; + } + } + + public function testisMobileIsTablet() + { + foreach (self::$items as $brand => $deviceArr) { + + foreach ($deviceArr as $userAgent => $conditions) { + + if (!is_array($conditions)) { continue; } + + $this->detect->setUserAgent($userAgent); + + foreach ($conditions as $condition => $assert) { + + // Currently not supporting version and model here. + // @todo: I need to split this tests! + if ( in_array($condition, array('model') ) ) { continue; } // 'version', + + switch ($condition) { + + case 'version': + // Android, iOS, Chrome, Build, etc. + foreach ($assert as $assertKey => $assertValue) { + //if ($brand == 'Apple') { + // echo 'UA ('.$condition.'('.$assertKey.') === '.$assertValue.'): '.$userAgent . "\n"; + //} + $this->assertTrue( $this->detect->$condition( $assertKey ) == $assertValue, 'UA ('.$condition.'('.$assertKey.') === '.$assertValue.'): '.$userAgent); + } + + break; + + default: + $this->assertTrue( $this->detect->$condition() === $assert, 'UA ('.$condition.'): '.$userAgent); + break; + + } + + } + + } + + } + + } + + public function testVersion() + { + foreach (self::$items as $brand => $deviceArr) { + + foreach ($deviceArr as $userAgent => $conditions) { + + if ( !is_array($conditions) || !isset($conditions['version']) ) { continue; } + + $this->detect->setUserAgent($userAgent); + + foreach ($conditions['version'] as $condition => $assertion) { + + $this->assertEquals( $this->detect->version($condition), $assertion, 'UA (version("'.$condition.'")): '.$userAgent ); + + } + + } + + } + + } + +} diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/bootstrap.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/bootstrap.php new file mode 100644 index 00000000000..6cd37f7bf1d --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/bootstrap.php @@ -0,0 +1,2 @@ + + + + + + + + + + ./ + + + + + diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json b/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json new file mode 100644 index 00000000000..c8b6db5b3ee --- /dev/null +++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json @@ -0,0 +1 @@ +{"hash":"0f2ce8fdb263e38dc366cecd67ec5ac87ad4c637","user_agents":[{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build\/HTK55D) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; A110 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0","Build":"IML74K"},"model":"A200"},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; A701 Build\/JRO03H) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-710 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A1-810 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)","mobile":true,"tablet":false},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A3-A10 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.36","Chrome":"32.0.1700.99"}},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A1-830 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"AdvanDigital","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"AdvanDigital","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Novo10 Hero Build\/20121115) AppleWebKit\/535.19 (KHTML like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"AllFine","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true,"version":{"Android":"3.2.1","Webkit":"534.13","Safari":"4.0"},"model":"Transformer TF101"},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03L","Webkit":"534.30","Safari":"4.0"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; ME301T Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.1","Build":"JOP40D"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; ME173X Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.1","Build":"JOP40D"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; TF300T Build\/JDQ39E) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39E"}},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false,"version":{"Android":"2.3.5","Webkit":"533.1","Safari":"4.0","Build":"GRJ90"},"model":"ONE TOUCH 918D"},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false,"version":{"Android":"2.3.6","Webkit":"533.1","Safari":"4.0","Build":"GRJ90"},"model":"ONE TOUCH 991"},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build\/ICECREAM) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4","Webkit":"534.30","Safari":"4.0","Build":"ICECREAM"},"model":"ONE TOUCH 993D"},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.5.3.246\/145\/355","mobile":true,"tablet":true},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.4 Mobile Safari\/535.19 Silk-Accelerated=true","mobile":true,"tablet":true},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; en-US) AppleWebKit\/528.5+ (KHTML, like Gecko, Safari\/528.5+) Version\/4.0 Kindle\/3.0 (screen 600x800; rotate)","mobile":true,"tablet":true,"version":{"Webkit":"528.5+","Kindle":"3.0","Safari":"4.0"},"model":"Kindle"},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Apple","user_agent":"iTunes\/9.1.1","mobile":false,"tablet":false},{"vendor":"Apple","user_agent":"iTunes\/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit\/536.27.1","mobile":false,"tablet":false},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit\/537.51.1 (KHTML, like Gecko) Version\/7.0 Mobile\/11A4449d Safari\/9537.53","mobile":true,"tablet":false},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit\/420+ (KHTML, like Gecko) Version\/3.0 Mobile\/1A543 Safari\/419.3","mobile":true,"tablet":false,"version":{"Webkit":"420+","Safari":"3.0"}},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit\/528.18 (KHTML, like Gecko) Version\/4.0 Mobile\/7A341 Safari\/528.16","mobile":true,"tablet":false,"version":{"iOS":"3_0","Webkit":"528.18","Safari":"4.0"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9B206 Safari\/7534.48.3","mobile":true,"tablet":false,"version":{"iOS":"5_1_1","Webkit":"534.46","Mobile":"9B206","Safari":"5.1"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_0","Webkit":"536.26","Mobile":"10A403","Safari":"6.0"},"model":"iPod"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.80 Mobile\/9B206 Safari\/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)","mobile":true,"tablet":true,"version":{"iOS":"5_1_1","Webkit":"534.46.0","Chrome":"21.0.1180.80","Mobile":"9B206"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25","mobile":true,"tablet":true,"version":{"iOS":"6_0","Webkit":"536.26","Safari":"6.0","Mobile":"10A403"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8C148 Safari\/6533.18.5","mobile":true,"tablet":true,"version":{"iOS":"4_2_1","Webkit":"533.17.9","Safari":"5.0.2","Mobile":"8C148"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit\/531.21.10 (KHTML, like Gecko) Version\/4.0.4 Mobile\/7B334b Safari\/531.21.10","mobile":true,"tablet":true,"version":{"iOS":"3_2","Webkit":"531.21.10","Safari":"4.0.4","Mobile":"7B334b"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.82 Mobile\/10A523 Safari\/7534.48.3","mobile":true,"tablet":false,"version":{"iOS":"6_0_1","Webkit":"534.46.0","Chrome":"21.0.1180.82","Mobile":"10A523"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A523 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_0_1","Webkit":"536.26","Safari":"6.0","Mobile":"10A523"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit\/536.26 (KHTML, like Gecko) CriOS\/23.0.1271.100 Mobile\/10B142 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_1","Webkit":"536.26","Chrome":"23.0.1271.100","Mobile":"10B142"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B329 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_1_3","Webkit":"536.26","Safari":"6.0","Mobile":"10B329"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Coast\/1.0.2.62956 Mobile\/10B329 Safari\/7534.48.3","mobile":true,"tablet":true,"version":{"Coast":"1.0.2.62956"}},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Qilive 97R Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"AudioSonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+","mobile":true,"tablet":false,"version":{"Webkit":"534.8+","BlackBerry":"6.0.0.546"},"model":"BlackBerry 9300"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.400 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.723 Mobile Safari\/534.8+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit\/534.8 (KHTML, like Gecko) Version\/6.0.0.448 Mobile Safari\/534.8","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.714 Mobile Safari\/534.11+","mobile":true,"tablet":false,"version":{"Webkit":"534.11+","BlackBerry":"7.1.0.714"},"model":"BlackBerry 9790"},{"vendor":"BlackBerry","user_agent":"Opera\/9.80 (BlackBerry; Opera Mini\/7.0.29990\/28.2504; U; en) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.342 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit\/534.8 (KHTML, like Gecko) Version\/6.0.0.480 Mobile Safari\/534.8","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit\/534.11 (KHTML, like Gecko) Version\/7.0.0.583 Mobile Safari\/534.11","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.576 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit\/534.11 (KHTML, like Gecko) Version\/7.1.0.523 Mobile Safari\/534.11","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.592 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/136","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.1067 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/603","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.1036 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/611","mobile":true,"tablet":false,"version":{"BlackBerry":"5.0.0.1036","VendorID":"611"},"model":"BlackBerry8520"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.337 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit\/536.2+ (KHTML, like Gecko) Version\/7.2.1.0 Safari\/536.2+","mobile":true,"tablet":true},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.1+ (KHTML, like Gecko) Version\/10.0.0.1337 Mobile Safari\/537.1+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) \/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+","mobile":true,"tablet":false,"version":{"BlackBerry":"10.0.9.2372"}},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true,"version":{"Android":"3.2.1","Webkit":"534.13","Safari":"4.0"},"model":"Transformer TF101"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A200"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A500"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A501"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"Transformer"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"Transformer Pad TF300T"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Webkit":"534.30","Safari":"4.0","Build":"JZO54K"},"model":"Transformer"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"B1-A71"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)","mobile":true,"tablet":false,"version":{"Windows Phone OS":"7.5","Trident":"5.0","IE":"9.0"},"model":"Allegro"},{"vendor":"Broncho","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build\/1.1.7 20121018-10:33) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build\/1.1.10-1015 20121230-18:00) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; Maxwell Lite Build\/v1.0.0.ICS.maxwell.20120920) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build\/1.0.0 20120913-10:39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Captiva","user_agent":"Opera\/9.80 (X11; Linux zvav; U; de) Presto\/2.8.119 Version\/11.10 Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Casio","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build\/C771M120) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"ChangJia","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ChangJia","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build\/FRF85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Concorde","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Concorde","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Cresta","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Cube","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Danew","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"},"model":"Dslide 700"},{"vendor":"DanyTech","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build\/Donut AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/ 525.20.1","mobile":true,"tablet":false},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; DELL; Venue Pro)","mobile":true,"tablet":false},{"vendor":"DPS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ECS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30"}},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build\/ICS.g12refM806A1YBD.20120925) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Fly","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Fly","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Fujitsu","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build\/V21R48A) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"V21R48A","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Fujitsu","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"FX2","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Galapad","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"534.30","Safari":"4.0","Build":"JRO03C"}},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build\/MID) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.40 Mobile Safari\/537.31 OPR\/14.0.1074.54070","mobile":true,"tablet":false,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.31","Opera":"14.0.1074.54070"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31","mobile":true,"tablet":false,"version":{"Android":"4.2.2","Chrome":"26.0.1410.58"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Nexus 7 Build\/JRO03D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2; Nexus 7 Build\/JOP40C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Nexus 7 Build\/JZ054K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Chrome":"18.0.1025.166"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build\/JZO54K; CyanogenMod-10.0.0) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; Nexus 10 Build\/JWR66Y) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android; en_us; Nexus 7 Build\/) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 NetFrontLifeBrowser\/2.3 Mobile (Dragonfruit)","mobile":true,"tablet":true},{"vendor":"GU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30","Safari":"4.0"}},{"vendor":"GU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build\/HCL) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build\/HCL ME Tablet X1) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (hp-tablet; Linux; hpwOS\/3.0.5; U; en-GB) AppleWebKit\/534.6 (KHTML, like Gecko) wOSBrowser\/234.83 Safari\/534.6 TouchPad\/1.0","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HP Slate 7 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build\/1.0.7_WW-FIR-13) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit\/534.24 (KHTML, like Gecko) Chrome\/11.0.696.34 Safari\/534.24","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"HTC_Touch_HD_T8282 Mozilla\/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build\/CUPCAKE) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build\/FRF91) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180\/1.0 Android\/2.2 release\/06.23.2010 Browser\/WAP 2.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3; xx-xx; HTC\/DesireS\/1.07.163.1 Build\/GRH78C) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC\/DesireS\/2.10.161.3 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build\/GRI40; ILWT-CM7) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U\/1.05.161.1 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; PG86100 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build\/MIUI) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; Desire HD Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HTC Butterfly Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; EVO Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; HTCSensation Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC 7 Mozart T8698; QSD8x50)","mobile":true,"tablet":false,"version":{"IE":"9.0","Windows Phone OS":"7.5","Trident":"5.0"},"model":"7 Mozart T8698"},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 HTC MOZART)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mondrian T8788)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart T8698)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart; Orange)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro T7576)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Schubert T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Surround)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy T8686)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Eternity)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Gold)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2 LEO)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7 T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; iPad 3)","mobile":true,"tablet":true},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; LEO)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mazaa)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mondrian)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart T8698)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; mwp6985)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40200)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PD67100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI39100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI86100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar 4G)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 1.08.164.02)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.164.01)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.168.02)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar; Orange)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schuber)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Spark)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Surround)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T7575)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8697)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8788)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9295)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9296)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; TITAN X310e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Titan)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Torphy T8686)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; X310e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC_blocked; T8788)","mobile":true,"tablet":false,"version":{"IE":"9.0","Windows Phone OS":"7.5","Trident":"5.0"},"model":"T8788"},{"vendor":"Hudl","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build\/HuaweiU8660) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build\/HuaweiU8850) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"HUAWEI_T8951_TD\/1.0 Android\/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release\/05.31.2012 Browser\/WAP2.0 (AppleWebKit\/534.30) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build\/HuaweiMediaPad) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815\/C8815V100R001C541B135; 540*960; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D\/C8813DV100R001C92B172; 480*854; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C\/Y300CV100R001C92B168; 480*800; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Iconbit","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; NT-3702M Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36 OPR\/16.0.1212.65583","mobile":true,"tablet":true},{"vendor":"Iconbit","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"iJoy","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Intenso","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build\/JR003H) AppleWebKit\/534.30 (KHTML, like Gecko)Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1.","Webkit":"534.30","Safari":"4.0"}},{"vendor":"IRU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"JXD","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Karbonn","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ST10 Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Kobo","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 (Kobo Touch)","mobile":true,"tablet":true,"version":{"Android":"2.0","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build\/ThinkPadTablet_A400_03) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; IdeaTabA1000-G) U2\/1.0.0 UCBrowser\/9.2.0.419 Mobile","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.117 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.360","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H\/S100) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.1 Mobile Safari\/534.300","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.300","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build\/IML74K) AppleWebkit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v\/V10f Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; LG-F180K Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; LG-V500 Build\/JDQ39B) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; LG-V510 Build\/KOT49H.L004) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG E-900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900k)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900; Orange)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900h)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-Optimus 7)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build\/HRI66) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Megafon","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Megafon","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; MT7A Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true},{"vendor":"MediaTek","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30\/4.05d.1002.m7","mobile":true,"tablet":true},{"vendor":"Micromax","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Micromax A110 Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22","mobile":true,"tablet":false,"version":{"Android":"4.1.1","Build":"JRO03C","Webkit":"537.22","Chrome":"25.0.1364.169"}},{"vendor":"Micromax","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Webkit":"534.30","Android":"4.0","Build":"IMM76D","Safari":"4.0"}},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)","mobile":true,"tablet":true,"version":{"IE":"10.0","Windows NT":"6.2","Trident":"6.0"}},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; ARMBJS)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MASMJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko\/20130626 Firefox\/25.0","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko\/20100101 Firefox\/22.0","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MDDCJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MDDCJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.52 Safari\/537.36 OPR\/15.0.1147.130","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.116 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MDDCJS; WebView\/1.0)","mobile":false,"tablet":false},{"vendor":"Modecom","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"MOT-W510\/08.11.05R MIB\/BER2.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 EGE\/1.0 UP.Link\/6.3.0.0.0","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build\/MLS2GC_2.6.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build\/4.5.1_57_DX8-51) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build\/4.5.1A-1_SUN-254_13) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build\/4.5.2-51_DFL-50) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build\/4.5.2A-51_OLL-17.8) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build\/V1.540) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build\/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0; en-us; Xoom Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.1; en-us; Xoom Build\/HMJ25) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build\/6.7.2-180_DHD-16_M4-31) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build\/V2.27D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4","Webkit":"534.30","Safari":"4.0"},"model":"XT687"},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build\/6.7.2-180_SPU-19-TA-11.6) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT910 Build\/9.8.2O-124_SPUL-17) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT915 Build\/2_32A_2031) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT919 Build\/2_290_2017) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT925 Build\/9.8.2Q-50-XT925_VQLM-20) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT907 Build\/9.8.1Q-66) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT901 Build\/9.8.2Q-50_SLS-13) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; DROID BIONIC Build\/9.8.2O-72_VZW-22) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Nabi","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"NEC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build\/A5001911) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"NEC","user_agent":"Mozilla\/5.0 (Linux; U; Android AAA; BBB; N-06D Build\/CCC) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build\/ERD79 1.4.3) Apple WebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.2.1","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build\/ICS) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"ICS","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; BNTV600 Build\/IMM76L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36 Hughes-PFB\/CID5391275.AID1376709964","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76L","Webkit":"537.36","Chrome":"28.0.1500.94"}},{"vendor":"Nokia","user_agent":"Nokia200\/2.0 (12.04) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 UCWEB\/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2\/1.0.0 UCBrowser\/8.9.0.251 U2\/1.0.0 Mobile UNTRUSTED\/1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia6303iclassic\/5.0 (06.61) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 Mozilla\/5.0 AppleWebKit\/420+ (KHTML, like Gecko) Safari\/420+","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"nokian73-1\/UC Browser7.8.0.95\/69\/400 UNTRUSTED\/1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia2760\/2.0 (06.82) Profile\/MIDP-2.1 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia3650\/1.0 SymbianOS\/6.1 Series60\/1.2 Profile\/MIDP-1.0 Configuration\/CLDC-1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"NokiaN70-1\/5.0737.3.0.1 Series60\/2.8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1\/UC Browser7.8.0.95\/27\/352","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.6.0.199\/28\/444\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2)\/UC Browser8.5.0.183\/28\/444\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.7.0.218\/28\/352\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Series40; NokiaC3-00\/08.63; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) Gecko\/20100401 S40OviBrowser\/2.2.0.0.33","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/7.0.31380\/28.2725; U; es) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false,"version":{"Opera Mini":"7.0.31380","Presto":"2.8.119"}},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaC7-00\/025.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaX7-00\/022.014; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaE6-00\/111.140.0058; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.020.0308; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.1.14 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaN8-00\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia701\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/3.83; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120ci\/7.02; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/7.10; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE66-1\/510.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE71-1\/110.07.127; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN95-3\/20.2.011 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE51-1\/200.34.36; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE63-1\/500.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN82\/10.0.046; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/052.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/@version@; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/031.022; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.3.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 NokiaN79-1\/32.001; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 Nokia6220c-1\/06.101; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/071.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE72-1\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/061.005; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaX6-00\/40.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gb","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5800d-1\/60.0.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaC5-03\/12.0.023; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5228\/40.1.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.7.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5230\/51.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5530c-2\/32.0.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-1\/21.0.045; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) BrowserNG\/7.1.4","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-4\/30.0.004; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.28 3gpp-gba","mobile":true,"tablet":false,"version":{"Symbian":"9.4","Webkit":"533.4","NokiaBrowser":"7.3.1.28"},"model":"NokiaN97-4"},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 7 Mozart T8698)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; HD7 T9292)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; LG E-900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 610)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; T-Mobile)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Vodafone)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800) UP.Link\/5.1.2.6","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; SFR)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; T-Mobile)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; vodafone)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 800c)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 920)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident\/6.0; IEMobile\/10.0; ARM; Touch; NOKIA; Lumia 920)","mobile":true,"tablet":false,"version":{"IE":"10.0","Windows Phone OS":"8.0","Trident":"6.0"},"model":"Lumia 920"},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; lumia800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 610)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800C)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Nokia)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; TITAN X310e)","mobile":true,"tablet":false,"version":{"Windows Phone OS":"7.5","Trident":"5.0"},"model":"TITAN X310e"},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build\/ODYS XENO 10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build\/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"OverMax","user_agent":"OV-SteelCore(B) Mozilla\/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9A405 Safari\/7534.48.3","mobile":true,"tablet":true},{"vendor":"OverMax","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build\/ICS.g08refem611.20121010) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"YONESTablet","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Pantech","user_agent":"PANTECH-C790\/JAUS08312009 Browser\/Obigo\/Q05A Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build\/GRI40) AppleWebKit\/533.1 (KHTML like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Philips","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"PointOfView","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30","Safari":"4.0"},"model":"PMP7100D3G"},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 MobilSafari\/534.30","mobile":true,"tablet":true},{"vendor":"PROSCAN","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"534.30","Safari":"4.0"}},{"vendor":"PyleAudio","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; PTBL92BC Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"537.36","Chrome":"31.0.1650.59"}},{"vendor":"RockChip","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"RockChip","user_agent":"Mozilla\/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build\/ECLAIR) AppleWebKit\/530.17 (KHTML like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":true},{"vendor":"RossMoor","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"QMobile","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"MQQBrowser\/4.0\/Mozilla\/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"MQQBrowser":"4.0"}},{"vendor":"Samsung","user_agent":"SAMSUNG-SGH-P250-ORANGE\/P250BVHH8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-B2710\/B271MCXKF1 SHP\/VPP\/R5 Dolfin\/2.0 QTV\/5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B","mobile":true,"tablet":false,"version":{"Dolfin":"2.0"}},{"vendor":"Samsung","user_agent":"SAMSUNG-SGH-D900i\/1.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-S5233T\/S5233TXEJE3 SHP\/VPP\/R5 Jasmine\/0.8 Qtv5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5380D\/S5380FXXKL3; U; Bada\/2.0; ru-ru) AppleWebKit\/534.20 (KHTML, like Gecko) Dolfin\/3.0 Mobile HVGA SMM-MMS\/1.2.0 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-C3312\/1.0 NetFront\/4.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build\/CUPCAKE) AppleWebKit\/528.5 (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-S3650\/S3650XEII3 SHP\/VPP\/R5 Jasmine\/1.0 Nextreaming SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94\/140\/352","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5250\/S5250XEKJ3; U; Bada\/1.0; ru-ru) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.0 Mobile WQVGA SMM-MMS\/1.2.0 NexPlayer\/3.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident\/3.1; IEMobile\/7.0; SAMSUNG; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S8530\/S8530XXJKA; U; Bada\/1.2; cs-cz) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.2 Mobile WVGA SMM-MMS\/1.2.0 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build\/Donut) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build\/FROYO) UC AppleWebKit\/534.31 (KHTML, like Gecko) Mobile Safari\/534.31","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MicroMessenger\/4.5.1.261","mobile":true,"tablet":false,"version":{"MicroMessenger":"4.5.1.261"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE\/I9001BVKPC Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build\/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build\/HRI83) AppleWebkit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build\/IML74K) AppleWebKit\/535.7 (KHTML, like Gecko) CrMo\/16.0.912.75 Mobile Safari\/535.7","mobile":true,"tablet":false,"version":{"Chrome":"16.0.912.75"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; SGH-T989 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false,"version":{"Chrome":"18.0.1025.166"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GT-I9300 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; SPH-D710 Build\/IMM76I) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE\/I9300BVBLG2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/355","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GT-P5110 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD\/1.0 Android\/4.0.4 Release\/07.15.2012 Browser\/AppleWebKit534.30 Build\/IMM76D) ApplelWebkit\/534.30 (KHTML,like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; GT-N7100 Build\/JZO54K) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.123 Mobile Safari\/537.22 OPR\/14.0.1025.52315","mobile":true,"tablet":false,"version":{"Build":"JZO54K","Webkit":"537.22","Opera":"14.0.1025.52315"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; SGH-i747M Build\/JRO03L) AppleWebKit\/535.19(KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; GT-I8262 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; GT-P5210 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, Like Gecko) Chrome\/27.0.1453.90 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; CETUS)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus I917 By TC)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; FOCUS S)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-I8350)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-i8700)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-S7530)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Hljchm's Wp)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; I917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA 7)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7 By MWP_HS)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i677)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917.)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917R)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i937)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SMG-917R)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SUMSUNG; OMNIA 7)","mobile":true,"tablet":false},{"vendor":"simvalley","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"SonyEricssonK800i\/R1AA Browser\/NetFront\/3.3 Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build\/2.0.1.A.0.47) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build\/2.1.1.A.0.6) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build\/3.0.1.G.0.75) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build\/TID0092) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"TID0092","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; LT18i Build\/4.1.A.0.562) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; Sony Tablet S Build\/TISU0R0110) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build\/TISU0143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build\/6.1.A.2.45) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; LT22i Build\/6.1.B.0.544) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build\/6.1.B.0.544) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.5.5) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.2.10) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; LT28h Build\/6.1.E.3.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build\/TJDS0170) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build\/10.1.E.0.265) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Build":"10.1.E.0.265","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; LT26w Build\/6.2.B.1.96) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; SGP321 Build\/10.3.1.A.0.33) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"10.3.1.A.0.33","Webkit":"537.31","Chrome":"26.0.1410.58"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build\/10.1.1.A.1.273) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build\/10.1.1.A.1.310) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build\/14.1.M.0.202) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build\/14.1.n.0.63) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build\/12.0.B.5.37) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; M35c Build\/12.0.B.2.42) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build\/12.0.C.2.42) AppleWebKit\/534.31 (KHTML, like Gecko) UCBrowser\/9.3.2.349 U3\/0.8.0 Mobile Safari\/534.31","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6502 Build\/17.1.A.2.69) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6503 Build\/17.1.A.0.504) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6543 Build\/17.1.A.2.55) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2004 Build\/20.0.A.0.29) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build\/20.0.A.1.12) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2104 Build\/20.0.B.0.84) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2105 Build\/20.0.B.0.74) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.170 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build\/20.0.B.0.85) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2302 Build\/18.0.B.1.23) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build\/18.0.b.1.23) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.6.3.413 U3\/0.8.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2303 Build\/18.0.C.1.13) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2305 Build\/18.0.A.1.30) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2306 Build\/18.0.C.1.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D5303 Build\/19.0.1.A.0.207) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D5306 Build\/19.1.A.0.264) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build\/19.0.D.0.269) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.7.6.428 U3\/0.8.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build\/19.0.C.2.59) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D5322 Build\/19.0.D.0.253) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.131","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build\/14.2.A.1.146) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; M51w Build\/14.2.A.1.146) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5102 Build\/18.2.A.0.9) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5103 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5106 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 GSA\/3.2.17.1009776.arm","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build\/14.1.G.2.257) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; C6943 Build\/14.3.A.0.681) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; SGP412 Build\/14.1.B.3.320) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build\/10.2.C.0.143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; SGP351 Build\/10.1.1.A.1.307) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; SGP341 Build\/10.4.B.0.569) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP511 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP512 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build\/17.1.A.2.69) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Safari\/537.16","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build\/17.1.A.2.36) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP551 Build\/17.1.A.2.72) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"SonyEricssonU5i\/R2CA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"SonyEricssonU5i\/R2AA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/4.0 (PDA; PalmOS\/sony\/model prmr\/Revision:1.1.54 (en)) NetFront\/3.0","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Opera\/9.80 (Linux mips; U; InettvBrowser\/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC\/BEL; en) Presto\/2.7.61 Version\/11.00","mobile":false,"tablet":false},{"vendor":"Sony","user_agent":"Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Skk","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build\/F10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"537.36"}},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03C","Webkit":"537.36"}},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"535.19"}},{"vendor":"Tecno","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Telstra","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build\/TVA301TELBG3) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"texet","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build\/GB.m1ref.20120116) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.3.4","Webkit":"533.1","Safari":"4.0"},"model":"TM-7021"},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.57 Safari\/537.36 OPR\/18.0.1290.67495","mobile":true,"tablet":true},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Toshiba","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; TOSHIBA; TSUNAGI)","mobile":true,"tablet":false},{"vendor":"Toshiba","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build\/TOSHIBA_FOLIO_AND_A) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.2","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; ST70408-1 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.31","Chrome":"26.0.1410.58"}},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; VT10416-2 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30;SurfTab_10.1","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build\/LR-97JC) Apple WebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build\/Visture V4 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build\/Visture V5 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 BMID\/E67A45B1AB","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 TwonkyBeamBrowser\/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build\/meizhi_V2.80.wifi8723.20121225.b11c800)","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"OneBrowser\/3.5\/Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; SmartTabII10 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vonino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vonino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Xoro","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build\/PAD 9719QR) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Xoro","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; PAD720 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1;zh-cn; ZTE V987 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30;","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; pt-pt; Blade Build\/tejosunhsine) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; N880e_Dawoer_Fulllock; China Telecom)","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; V965W)","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; Windows Phone - Internet 7; SFR)","mobile":true,"tablet":false},{"vendor":"Zync","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/444","mobile":true,"tablet":true},{"vendor":"Console","user_agent":"Mozilla\/5.0 (Nintendo WiiU) AppleWebKit\/534.52 (KHTML, like Gecko) NX\/{Version No} NintendoBrowser\/{Version No}.US","mobile":false,"tablet":false},{"vendor":"Console","user_agent":"Mozilla\/5.0 (PLAYSTATION 3 4.21) AppleWebKit\/531.22.8 (KHTML, like Gecko)","mobile":false,"tablet":false},{"vendor":"Console","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident\/5.0; Xbox)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux i686) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/32.0.1700.102 Chrome\/32.0.1700.102 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko\/20100101 Firefox\/24.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko\/20100101 Firefox\/18.0 AlexaToolbar\/psPCtGhf-2.2","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko\/20100101 Firefox\/22.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux ppc; rv:17.0) Gecko\/20130626 Firefox\/17.0 Iceweasel\/17.0.7","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux) AppleWebKit\/535.22+ Midori\/0.4","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit\/535+ (KHTML, like Gecko) Version\/5.0 Safari\/535.20+ Midori\/0.4","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.20 Safari\/537.36 OPR\/15.0.1147.18 (Edition Next)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 5.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko\/20100101 Firefox\/21.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Windows NT 5.2; WOW64) Presto\/2.12.388 Version\/12.14","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko\/20100101 Firefox\/19.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko\/20100101 Firefox\/14.0.1","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MANMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; Touch; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto\/2.12.388 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident\/6.0)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.3; Trident\/7.0; rv 11.0) like Gecko","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.3; WOW64; Trident\/7.0; Touch; rv:11.0) like Gecko","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Unknown; Linux armv7l) AppleWebKit\/537.1+ (KHTML, like Gecko) Safari\/537.1+ HbbTV\/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"HbbTV\/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Java\/1.6.0_22","mobile":false,"tablet":false,"version":{"Java":"1.6.0_22"}},{"vendor":"Generic","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/6.5.29260\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/6.5.27452\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.17 (KHTML, like Gecko) Chrome\/24.0.1312.60 Safari\/537.17 OPR\/14.0.1025.52315","mobile":false,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (X11; CrOS armv7l 4920.83.0) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.103 Safari\/537.36"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8H7 Safari\/6533.18.5"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; GT-I9070 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.3.7; Linux; Opera Mobi\/46154) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; it-it; DATAM819HD_C Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; SGPT12 Build\/TID0142) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; cm_tenderloin Build\/IMM76L; CyanogenMod-9) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; A210 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B141 Safari\/8536.25"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-I8150 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Mercury\/7.2 Mobile\/10A523 Safari\/8536.25"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.3.7; Linux; Opera Tablet\/46154) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build\/MASTER) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2; en-us; sdk Build\/JB_MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (X11; Linux zbov) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit\/532.9 (KHTML, like Gecko) Version\/5.0.3 Mobile\/8B5097d Safari\/6531.22.7"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; SGPT12 Build\/TID0142) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Nintendo 3DS; U; ; en) Version\/1.7498.US"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.0.6_b1; ru-ru Build\/ECLAIR) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; z1000 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; cm_tenderloin Build\/GWK74) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; Android for Techvision TV1T808 Board Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"BlackBerry8520\/5.0.0.592 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/136"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.2) AppleWebKit\/537.17 (KHTML, like Gecko) Chrome\/24.0.1312.56 Safari\/537.17"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.1; ru-ru; LG-V900 Build\/HMJ37) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident\/6.0; IEMobile\/10.0; ARM; Touch; HTC; Windows Phone 8S by HTC)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (PLAYSTATION 3 4.11) AppleWebKit\/531.22.8 (KHTML, like Gecko)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; ru-ru; V9S_V1.4) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; WebView\/1.0)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; Next7P12 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (X11; Linux zbov) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-es; SAMSUNG GT-S5830\/S5830BUKT2 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build\/HTK75C) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; full Android on Microsoft Windows, pad, pc, n*books Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Linux mips; U; InettvBrowser\/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC\/BEL; en) Presto\/2.7.61 Version\/11.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Mobile; rv:18.0) Gecko\/18.0 Firefox\/18.0"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.1) AppleWebKit\/535.12 (KHTML, like Gecko) Maxthon\/3.0 Chrome\/18.0.966.0 Safari\/535.12"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto\/2.10.289 Version\/12.02"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2; en-us; sdk Build\/JB_MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)"},{"vendor":"Generic","user_agent":"PalmCentro\/v0001 Mozilla\/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource\/Palm-D061; Blazer\/4.5) 16;320x320"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Microsoft; XDeviceEmulator)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; MAL; N880E; China Telecom)"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/7.0.29482\/28.2859; U; ru) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (S60; SymbOS; Opera Mobi\/SYB-1202242143; U; en-GB) Presto\/2.10.254 Version\/12.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/7.0.29952\/28.2647; U; ru) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/6.1.25375\/28.2555; U; en) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Mac OS X; Opera Tablet\/35779; U; en) Presto\/2.10.254 Version\/12.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Tablet; rv:10.0.4) Gecko\/10.0.4 Firefox\/10.0.4 Fennec\/10.0.4"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Tablet; rv:18.0) Gecko\/18.0 Firefox\/18.0"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Linux armv7l; Maemo; Opera Mobi\/14; U; en) Presto\/2.9.201 Version\/11.50"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.2.1; Linux; Opera Mobi\/ADR-1207201819; U; en) Presto\/2.10.254 Version\/12.00","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build\/JRO03E) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build\/ONDA_MID) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build\/ICS.g08refem618.20121102) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Bot","user_agent":"Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http:\/\/grub.org)","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"Googlebot-Image\/1.0","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"Python-urllib\/2.5","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"facebookexternalhit\/1.0 (+http:\/\/www.facebook.com\/externalhit_uatext.php)","mobile":false,"tablet":false}]} \ No newline at end of file diff --git a/htdocs/includes/odtphp/Segment.php b/htdocs/includes/odtphp/Segment.php index 9bcfa0f65d1..c3e23ee9aec 100644 --- a/htdocs/includes/odtphp/Segment.php +++ b/htdocs/includes/odtphp/Segment.php @@ -6,7 +6,6 @@ class SegmentException extends Exception * Class for handling templating segments with odt files * You need PHP 5.2 at least * You need Zip Extension or PclZip library - * Encoding : ISO-8859-1 * * @copyright GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com) * @copyright GPL License 2012 - Stephen Larroque - lrq3000@gmail.com diff --git a/htdocs/includes/odtphp/SegmentIterator.php b/htdocs/includes/odtphp/SegmentIterator.php index 3b0ccecf3ff..5f397c5f838 100644 --- a/htdocs/includes/odtphp/SegmentIterator.php +++ b/htdocs/includes/odtphp/SegmentIterator.php @@ -3,7 +3,6 @@ * Segments iterator * You need PHP 5.2 at least * You need Zip Extension or PclZip library - * Encoding : ISO-8859-1 * * @copyright GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com) * @license http://www.gnu.org/copyleft/gpl.html GPL License diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 26d1c057219..351a5969b14 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -6,14 +6,13 @@ class OdfException extends Exception * Templating class for odt file * You need PHP 5.2 at least * You need Zip Extension or PclZip library - * Encoding : ISO-8859-1 * * @copyright GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com) - * @copyright GPL License 2010 - Laurent Destailleur - eldy@users.sourceforge.net - * @copyright GPL License 2010 - Vikas Mahajan - http://vikasmahajan.wordpress.com + * @copyright GPL License 2010-2015 - Laurent Destailleur - eldy@users.sourceforge.net + * @copyright GPL License 2010 - Vikas Mahajan - http://vikasmahajan.wordpress.com * @copyright GPL License 2012 - Stephen Larroque - lrq3000@gmail.com * @license http://www.gnu.org/copyleft/gpl.html GPL License - * @version 1.4.6 (last update 2013-04-07) + * @version 1.5.0 */ class Odf { @@ -25,6 +24,7 @@ class Odf ); protected $file; protected $contentXml; // To store content of content.xml file + protected $metaXml; // To store content of meta.xml file protected $stylesXml; // To store content of styles.xml file protected $manifestXml; // To store content of META-INF/manifest.xml file protected $tmpfile; @@ -32,6 +32,12 @@ class Odf protected $images = array(); protected $vars = array(); protected $segments = array(); + + public $creator; + public $title; + public $subject; + public $userdefined=array(); + const PIXEL_TO_CM = 0.026458333; /** * Class constructor @@ -86,6 +92,9 @@ class Odf if (($this->manifestXml = $this->file->getFromName('META-INF/manifest.xml')) === false) { throw new OdfException("Something is wrong with META-INF/manifest.xml in source file '$filename'"); } + if (($this->metaXml = $this->file->getFromName('meta.xml')) === false) { + throw new OdfException("Nothing to parse - Check that the meta.xml file is correctly formed in source file '$filename'"); + } if (($this->stylesXml = $this->file->getFromName('styles.xml')) === false) { throw new OdfException("Nothing to parse - Check that the styles.xml file is correctly formed in source file '$filename'"); } @@ -187,6 +196,7 @@ class Odf /** * Evaluating php codes inside the ODT and output the buffer (print, echo) inplace of the code * + * @return int 0 */ public function phpEval() { @@ -268,13 +278,13 @@ IMG; * Merge template variables * Called automatically for a save * - * @param string $type 'content' or 'styles' + * @param string $type 'content', 'styles' or 'meta' * @return void */ private function _parse($type='content') { // Conditionals substitution - // Note: must be done before content substitution, else the variable will be replaced by its value and the conditional won't work anymore + // Note: must be done before static substitution, else the variable will be replaced by its value and the conditional won't work anymore foreach($this->vars as $key => $value) { // If value is true (not 0 nor false nor null nor empty string) @@ -300,11 +310,11 @@ IMG; } } - // Content (variable) substitution + // Static substitution if ($type == 'content') $this->contentXml = str_replace(array_keys($this->vars), array_values($this->vars), $this->contentXml); - // Styles substitution if ($type == 'styles') $this->stylesXml = str_replace(array_keys($this->vars), array_values($this->vars), $this->stylesXml); - + if ($type == 'meta') $this->metaXml = str_replace(array_keys($this->vars), array_values($this->vars), $this->metaXml); + } /** @@ -408,13 +418,21 @@ IMG; $res=$this->file->open($this->tmpfile); // tmpfile is odt template $this->_parse('content'); $this->_parse('styles'); + $this->_parse('meta'); + $this->setMetaData(); + //print $this->metaXml;exit; + if (! $this->file->addFromString('content.xml', $this->contentXml)) { - throw new OdfException('Error during file export addFromString'); + throw new OdfException('Error during file export addFromString content'); + } + if (! $this->file->addFromString('meta.xml', $this->metaXml)) { + throw new OdfException('Error during file export addFromString meta'); } if (! $this->file->addFromString('styles.xml', $this->stylesXml)) { - throw new OdfException('Error during file export addFromString'); + throw new OdfException('Error during file export addFromString styles'); } + foreach ($this->images as $imageKey => $imageValue) { // Add the image inside the ODT document $this->file->addFile($imageKey, 'Pictures/' . $imageValue); @@ -427,10 +445,37 @@ IMG; $this->file->close(); } + /** + * Update Meta information + * 2013-03-16T14:06:25 + * + * @return void + */ + public function setMetaData() + { + if (empty($this->creator)) $this->creator=''; + + $this->metaXml = preg_replace('/.*<\/dc:date>/', ''.gmdate("Y-m-d\TH:i:s").'', $this->metaXml); + $this->metaXml = preg_replace('/.*<\/dc:creator>/', ''.htmlspecialchars($this->creator).'', $this->metaXml); + $this->metaXml = preg_replace('/.*<\/dc:title>/', ''.htmlspecialchars($this->title).'', $this->metaXml); + $this->metaXml = preg_replace('/.*<\/dc:subject>/', ''.htmlspecialchars($this->subject).'', $this->metaXml); + + if (count($this->userdefined)) + { + foreach($this->userdefined as $key => $val) + { + $this->metaXml = preg_replace('', '', $this->metaXml); + $this->metaXml = preg_replace('/.*<\/meta:user-defined>/', '', $this->metaXml); + $this->metaXml = str_replace('', ''.htmlspecialchars($val).'', $this->metaXml); + } + } + } + /** * Update Manifest file according to added image files * * @param string $file Image file to add into manifest content + * @return void */ public function addImageToManifest($file) { diff --git a/htdocs/includes/phpoffice/phpexcel/.gitattributes b/htdocs/includes/phpoffice/phpexcel/.gitattributes new file mode 100644 index 00000000000..1bc28be4bde --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/.gitattributes @@ -0,0 +1,4 @@ +/Build export-ignore +/Documentation export-ignore +/Tests export-ignore +README.md export-ignore diff --git a/htdocs/includes/phpoffice/phpexcel/.gitignore b/htdocs/includes/phpoffice/phpexcel/.gitignore new file mode 100644 index 00000000000..dea03b5e112 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/.gitignore @@ -0,0 +1,9 @@ +build/PHPExcel.phar +unitTests/codeCoverage +analysis + +## IDE support +*.buildpath +*.project +/.settings +/.idea diff --git a/htdocs/includes/phpoffice/phpexcel/.travis.yml b/htdocs/includes/phpoffice/phpexcel/.travis.yml new file mode 100644 index 00000000000..8b53bf22ea2 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/.travis.yml @@ -0,0 +1,14 @@ +language: php + +php: + - 5.2 + - 5.3.3 + - 5.3 + - 5.4 + - 5.5 + +script: + - phpunit -c ./unitTests/ + +notifications: + email: false diff --git a/htdocs/includes/phpexcel/PHPExcel.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php index bf6f60f5fd0..e01581a243d 100644 --- a/htdocs/includes/phpexcel/PHPExcel.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Autoloader.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Autoloader.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php index a36dfcc905e..221666f99bc 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Autoloader.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ PHPExcel_Autoloader::Register(); diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/APC.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/APC.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php index 0fbf8874c5e..c256919da5a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/APC.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/CacheBase.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/CacheBase.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php index 84a0416c3b6..cc7ffd0cc44 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/CacheBase.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/DiscISAM.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/DiscISAM.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php index 492abea8526..abea93f8a5a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/DiscISAM.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/ICache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/ICache.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php index c3f2c14d74b..7686f3c4b09 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/ICache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Igbinary.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Igbinary.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php index c3056de1fb6..5cc7220c848 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Igbinary.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memcache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memcache.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php index 9061a31a1d1..2896c752159 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memcache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memory.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php index 20cd59f64a3..bedcfeca5a1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Memory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemoryGZip.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemoryGZip.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php index 692c1bfcb6a..9c866ca3ddf 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemoryGZip.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemorySerialized.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemorySerialized.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php index fdd021a8dd2..cdded69698f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/MemorySerialized.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/PHPTemp.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/PHPTemp.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php index b00c19bbb4a..17a1c4b0eb8 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/PHPTemp.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php index 75b99c68a66..6c8e65cb3a3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite3.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite3.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php index bcfe159bda9..da27ad1a840 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/SQLite3.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Wincache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Wincache.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php index 96dca6627fb..7ff27893034 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorage/Wincache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php @@ -22,7 +22,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorageFactory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CachedObjectStorageFactory.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php index 6c3ec15cf2f..2da92346e93 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CachedObjectStorageFactory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php @@ -23,7 +23,7 @@ * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CalcEngine/CyclicReferenceStack.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/CalcEngine/CyclicReferenceStack.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php index 02591935a4b..a633c2c3ab7 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CalcEngine/CyclicReferenceStack.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/CalcEngine/Logger.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/CalcEngine/Logger.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php index 2048df3e515..fe43ae4f67d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/CalcEngine/Logger.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php index b609b0d8921..6159be9ba90 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Database.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Database.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php index c3e86d761cb..908decfc471 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Database.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/DateTime.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/DateTime.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php index debd1315073..6eb96fd2ccd 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/DateTime.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Engineering.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Engineering.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php index 7e32aa87081..b60163e5684 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Engineering.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Exception.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php index 037f7884af1..2ddf666df8d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/ExceptionHandler.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/ExceptionHandler.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php index 389f6477834..41c42d7ac70 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/ExceptionHandler.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Financial.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Financial.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php index 525b172109a..912a26961ae 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Financial.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaParser.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaParser.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php index 754a638d4ca..3884fd20aaa 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaParser.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaToken.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaToken.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php index fd5e2e530fd..ad10c00a2fb 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/FormulaToken.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Function.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Function.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php index 7299834eb69..1301cd096cf 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Function.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Functions.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Functions.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php index 71bfa19b6a1..df21ac4f454 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Functions.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ @@ -496,7 +496,7 @@ class PHPExcel_Calculation_Functions { * @return string Version information */ public static function VERSION() { - return 'PHPExcel 1.8.0, 2014-03-02'; + return 'PHPExcel ##VERSION##, ##DATE##'; } // function VERSION() diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Logical.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Logical.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php index bb206a14257..48fdb17f4e2 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Logical.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/LookupRef.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/LookupRef.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php index e1285d90409..94f42e5f292 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/LookupRef.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/MathTrig.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/MathTrig.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php index 10930552b35..b2bb19d4840 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/MathTrig.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Statistical.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Statistical.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php index 32b9c781d9c..2037f334994 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Statistical.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/TextData.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/TextData.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php index d1ba2728e0f..73a0d0cd7be 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/TextData.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/Token/Stack.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/Token/Stack.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php index 821f3bd280e..57963e73853 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Calculation/Token/Stack.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php @@ -22,7 +22,7 @@ * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Calculation/functionlist.txt b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/functionlist.txt similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Calculation/functionlist.txt rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/functionlist.txt diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Cell.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php index 1788559fd30..0462686d178 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/AdvancedValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Cell/AdvancedValueBinder.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php index 00a2b57fa12..f4280ac4953 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/AdvancedValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/DataType.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Cell/DataType.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php index 85765426b89..07e148a50ff 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/DataType.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/DataValidation.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Cell/DataValidation.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php index 3174a3fe44a..538ecd1fbcf 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/DataValidation.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/DefaultValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Cell/DefaultValueBinder.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php index f1880faa790..67a4b5f6835 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/DefaultValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/Hyperlink.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Cell/Hyperlink.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php index 06edfad0b69..178ba7ee2f5 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/Hyperlink.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Cell/IValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Cell/IValueBinder.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php index bc7b468b9cd..551815523e6 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Cell/IValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php @@ -22,7 +22,7 @@ * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php index 9d251b8fd49..2f3f19d22a0 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/DataSeries.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart/DataSeries.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php index f5391aae995..86e61eb17ee 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/DataSeries.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/DataSeriesValues.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart/DataSeriesValues.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php index 930542b5601..731d2c92213 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/DataSeriesValues.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Exception.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php index ecf3c43824e..58b5b58220c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Layout.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Layout.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php index d749dfedce2..eefa157a90f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/Layout.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Legend.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Legend.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php index 4b7c6449aab..783b3d42970 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/Legend.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/PlotArea.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Chart/PlotArea.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php index 237d29b0e25..c917ce3056e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/PlotArea.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Renderer/jpgraph.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Renderer/jpgraph.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php index 14ba2a04152..5245d701ead 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/Renderer/jpgraph.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php @@ -23,7 +23,7 @@ * @package PHPExcel_Chart_Renderer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Chart/Title.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Chart/Title.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php index 415551b3f0f..5d226c4b2b8 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Chart/Title.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php @@ -22,7 +22,7 @@ * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Comment.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Comment.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php index a2422c60e9e..8b8cfdcc4fc 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Comment.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/DocumentProperties.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/DocumentProperties.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php index 2f1fa1ede7d..7b4a0e4358b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/DocumentProperties.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/DocumentSecurity.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/DocumentSecurity.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php index 340504e8f18..cf7ffb57c0f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/DocumentSecurity.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Exception.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php index 683e9099d8c..578b9eeeec8 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/HashTable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/HashTable.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php index 7a9205e5b95..77106e1e05a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/HashTable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/IComparable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/IComparable.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php index 6b1e18aa901..adb9a016d14 100644 --- a/htdocs/includes/phpexcel/PHPExcel/IComparable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php @@ -20,7 +20,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/IOFactory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/IOFactory.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php index 69ec8b69531..1daa06a5339 100644 --- a/htdocs/includes/phpexcel/PHPExcel/IOFactory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/NamedRange.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/NamedRange.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php index 3ad5caabd46..fe245e3ee72 100644 --- a/htdocs/includes/phpexcel/PHPExcel/NamedRange.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Abstract.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Abstract.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php index 0d5180c6e3e..e0f4c0dc3cb 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Abstract.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/CSV.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/CSV.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/CSV.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/CSV.php index 8bf7b848195..043aeecf575 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/CSV.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/CSV.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/DefaultReadFilter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/DefaultReadFilter.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Reader/DefaultReadFilter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/DefaultReadFilter.php index 228ed10877a..dc55fc6bde6 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/DefaultReadFilter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/DefaultReadFilter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2003XML.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2003XML.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel2003XML.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2003XML.php index ce1f31d6772..17472d0401b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2003XML.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2003XML.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php index d8344ac7a29..105904c64af 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Chart.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Chart.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Chart.php index 0de88acb120..1424276c640 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Chart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Chart.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Theme.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Theme.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Theme.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Theme.php index 820fa96db89..a371c620856 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel2007/Theme.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007/Theme.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel5.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5.php index 91e0fa086f7..5c957e41674 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of ParseXL (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/Escher.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php index 3ed82c62ae6..8dc5e902eb9 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/MD5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/MD5.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php index 946d5a0da70..097e9753ff3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/MD5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/RC4.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/RC4.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php index dc6327c0490..199ee1921cd 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Excel5/RC4.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Exception.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php index f42a1aafca2..d0e2f57070e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/Gnumeric.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/Gnumeric.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php index 6db7c4969ee..d8121495d12 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/Gnumeric.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/HTML.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/HTML.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php index 1696471029d..5b32c92234f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/HTML.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/IReadFilter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Reader/IReadFilter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php index 5a691a5fb77..f27cff8b979 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/IReadFilter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/IReader.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Reader/IReader.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php index 6c3e878e9f6..a24ab4e97b3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/IReader.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/OOCalc.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/OOCalc.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php index 8ad7061ce90..ce30fc25d7d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/OOCalc.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Reader/SYLK.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Reader/SYLK.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php index cd87ce56c10..b61118a3b4b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Reader/SYLK.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php @@ -22,7 +22,7 @@ * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/ReferenceHelper.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/ReferenceHelper.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php index 402f2b472a6..9eadab4d575 100644 --- a/htdocs/includes/phpexcel/PHPExcel/ReferenceHelper.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/RichText.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/RichText.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php index 2f172a0512b..19326315bae 100644 --- a/htdocs/includes/phpexcel/PHPExcel/RichText.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php @@ -22,7 +22,7 @@ * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/RichText/ITextElement.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/RichText/ITextElement.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php index ec19498d06c..9f1c6240a9b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/RichText/ITextElement.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php @@ -20,7 +20,7 @@ * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/RichText/Run.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/RichText/Run.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php index 71545fc2e39..4a8c592e34e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/RichText/Run.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php @@ -20,7 +20,7 @@ * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/RichText/TextElement.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/RichText/TextElement.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php index 3593c6e19c0..ec7c2644ef2 100644 --- a/htdocs/includes/phpexcel/PHPExcel/RichText/TextElement.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php @@ -20,7 +20,7 @@ * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Settings.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Settings.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php index b89961320e4..839231ba02d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Settings.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php @@ -22,7 +22,7 @@ * @package PHPExcel_Settings * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** PHPExcel root directory */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/CodePage.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/CodePage.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php index 2807ab37381..d1c4e1a592f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/CodePage.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Date.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Date.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php index 7fe4f4207ef..f253786d6aa 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Date.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php @@ -23,7 +23,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Drawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php index 1d7af16bdc5..dbff74abce0 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php index 983cbdaa029..ddf68c65bd1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php index 3ec564c5663..cb826db109e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php index 651eaf0eef5..b8ad8eafd73 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php index dde115401ca..68231480188 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php index bf5f61f266c..26696ec9db3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php index d16bfc76e8c..fba2e73fa2c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php index ea3c52a3772..418896a3419 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php index 802ce6d943e..d9cc2f5c086 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Excel5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Excel5.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php index 927dace9aca..3caf675dd43 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Excel5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/File.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/File.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php index 70756a0446a..52c9b9796f7 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/File.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/Font.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php index 203d4ecb4e3..9effd91ec03 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/CHANGELOG.TXT b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/CHANGELOG.TXT rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/CHANGELOG.TXT diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/CholeskyDecomposition.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/CholeskyDecomposition.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/CholeskyDecomposition.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/LUDecomposition.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/LUDecomposition.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/LUDecomposition.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/Matrix.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/Matrix.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/Matrix.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/Matrix.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/QRDecomposition.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/QRDecomposition.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/QRDecomposition.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/SingularValueDecomposition.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/SingularValueDecomposition.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/SingularValueDecomposition.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/utils/Error.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/utils/Error.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/utils/Error.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/utils/Error.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/utils/Maths.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/utils/Maths.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/JAMA/utils/Maths.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/JAMA/utils/Maths.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLE.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE/ChainedBlockStream.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLE/ChainedBlockStream.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php index 3dcd7e1dad0..5145206e71a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE/ChainedBlockStream.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_OLE * @copyright Copyright (c) 2006 - 2007 Christian Schmidt * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ /** diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS/File.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS/File.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS/File.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS/File.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS/Root.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS/Root.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLE/PPS/Root.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS/Root.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/OLERead.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/OLERead.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php index c4cb7da3064..261bdde5812 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/OLERead.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ defined('IDENTIFIER_OLE') || diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/gnu-lgpl.txt diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/pclzip.lib.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/pclzip.lib.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/readme.txt b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/readme.txt similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip/readme.txt rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PCLZip/readme.txt diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/PasswordHasher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/PasswordHasher.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php index 4f505a2aca6..891b6bc15e4 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/PasswordHasher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/String.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/String.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php index 49d217a5cbd..fc86d537d18 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/String.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/TimeZone.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/TimeZone.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php index d5fa2ade694..1792a295389 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/TimeZone.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php @@ -23,7 +23,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/XMLWriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/XMLWriter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php index 0b0b5539d47..beca51fc587 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/XMLWriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ if (!defined('DATE_W3C')) { diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/ZipArchive.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/ZipArchive.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php index ab551afe946..5507210af9c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/ZipArchive.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_ZipArchive * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ if (!defined('PCLZIP_TEMPORARY_DIR')) { diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/ZipStreamWrapper.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/ZipStreamWrapper.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php index 696072bb0bd..6e63d3ce3d6 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/ZipStreamWrapper.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/bestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/bestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php index 088ce067cb1..9ae8b006d03 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/bestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/exponentialBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/exponentialBestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php index 44c7aee8519..b524b5fe4cf 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/exponentialBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/linearBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/linearBestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php index 00da841168f..7d811aa5b99 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/linearBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/logarithmicBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/logarithmicBestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php index ac9c1e200bf..b43cd5edfad 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/logarithmicBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/polynomialBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/polynomialBestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php index a5079752927..3d329eb7d42 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/polynomialBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/powerBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/powerBestFitClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php index 158e0c4592e..832669c9f5a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/powerBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/trendClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Shared/trend/trendClass.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php index d891a7dc6ca..25d7eb1d8cc 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Shared/trend/trendClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php @@ -22,7 +22,7 @@ * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php index 715ae11319c..9c29320eaa6 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Alignment.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Alignment.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php index 0d9e076799e..7577da53733 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Alignment.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Border.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Border.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php index 3b7eba9af9c..ec737bf0f14 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Border.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Borders.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Borders.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php index b90838a60dc..21dcfeeefdb 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Borders.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Color.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Color.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php index 4d34504f397..a56c9a6338b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Color.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Conditional.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Conditional.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php index ffd7a9f9b57..aebf1e31333 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Conditional.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Fill.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Fill.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php index 1b4d0ad34d1..6412ba6349d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Fill.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/Font.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php index e89488c2c1c..296e348557a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/NumberFormat.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Style/NumberFormat.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php index e8a978fb28c..0d7d93de279 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/NumberFormat.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Protection.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/Style/Protection.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php diff --git a/htdocs/includes/phpexcel/PHPExcel/Style/Supervisor.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Style/Supervisor.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php index c2ce9c035ab..2d21f52934d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Style/Supervisor.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php @@ -22,7 +22,7 @@ * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php index 682ad9838ea..b61f76e6c93 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php index 03055e10b99..d0fa8b6df2f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php index 12043d5a0a1..1a6fb4eb8df 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column/Rule.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column/Rule.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php index ae33683f708..4a14d7d7d2a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/AutoFilter/Column/Rule.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/BaseDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/BaseDrawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php index 4db0f8825a9..0250035ccec 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/BaseDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/CellIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/CellIterator.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php index 4b968167a8d..27cdc94c3a3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/CellIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/ColumnDimension.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/ColumnDimension.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php index 79db1c58ffa..bc6a042eb42 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/ColumnDimension.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php index 56f0cfde13e..e8d87f1d04e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet_Drawing * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing/Shadow.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing/Shadow.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php index 5df448964b0..98b95b1a709 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Drawing/Shadow.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet_Drawing * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php index 82d7faf6d4e..8037416383f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooterDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooterDrawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php index 1c6f4e19087..966664f932d 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/HeaderFooterDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/MemoryDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/MemoryDrawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php index 93266d210c9..80fc6d1f0b3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/MemoryDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/PageMargins.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/PageMargins.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php index 671711ff50e..b05a291ff3b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/PageMargins.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/PageSetup.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/PageSetup.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php index 9512dbe48df..ba2792fac9f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/PageSetup.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Protection.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/Protection.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php index f41dd53a2a0..da66bf7632f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Protection.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Row.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/Row.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php index 2e9bd132867..df16d33c219 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/Row.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/RowDimension.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/RowDimension.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php index 69b7ba813eb..93535f55ec2 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/RowDimension.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/RowIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/RowIterator.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php index f2d962f5741..642ec763d13 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/RowIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Worksheet/SheetView.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Worksheet/SheetView.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php index 05fbf286b06..8ced835ddad 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Worksheet/SheetView.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php @@ -22,7 +22,7 @@ * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/WorksheetIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/WorksheetIterator.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php index 624b49b6208..ad17fd90342 100644 --- a/htdocs/includes/phpexcel/PHPExcel/WorksheetIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php @@ -22,7 +22,7 @@ * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Abstract.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Abstract.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php index 7e09ef83a08..fca6a60cc80 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Abstract.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/CSV.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/CSV.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php index 521874f25ed..97961ccca43 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/CSV.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_CSV * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php index a8f7593c106..4cf14ac1c4b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Chart.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php index 526daa92d94..0b686b9124a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Chart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Comments.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Comments.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php index 436219c6e90..dc809fa8e32 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Comments.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/ContentTypes.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/ContentTypes.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php index 3c17a169271..557853654a3 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/ContentTypes.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/DocProps.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/DocProps.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php index cfc308909f0..f8821379c65 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/DocProps.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Drawing.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php index 3c52723a41c..1cf971ed4d1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Rels.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Rels.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php index 0bdb667c991..a7d36c0a9d0 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Rels.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsRibbon.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsRibbon.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php index f924a1d43d1..615f2cbd993 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsRibbon.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsVBA.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsVBA.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php index aecb0b8da3b..3f87d81f2a7 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/RelsVBA.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/StringTable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/StringTable.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php index 0e8a259b1b9..e8ca1c5a566 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/StringTable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Style.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Style.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php index 849ad127f58..9857043b875 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Style.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Theme.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Theme.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php index 064c3edcb7a..c67b948165c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Theme.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Workbook.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Workbook.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php index d1fe666e84f..f30929476e1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Workbook.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Worksheet.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php index 7d93f5a4e00..760581647ec 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/WriterPart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/WriterPart.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php index 982117bcf6f..68b1124fd54 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel2007/WriterPart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php index 3f816fa1f87..1a990d045ad 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/BIFFwriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/BIFFwriter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php index b3e48bc33d5..86201134d0f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/BIFFwriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of PEAR::Spreadsheet_Excel_Writer_BIFFwriter (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Escher.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php index 7e9b73a3d1b..92e6a8d8848 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Font.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php index f2dbab2015b..0df1943826b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Parser.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Parser.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php index 04e674a21a2..7bdc1c0bcb9 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Parser.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of PEAR::Spreadsheet_Excel_Writer_Parser (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Workbook.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Workbook.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php index e14bcba4d37..ecfac5dc015 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Workbook.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of PEAR::Spreadsheet_Excel_Writer_Workbook (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Worksheet.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php index 55da26f3282..722ac15bf8a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of PEAR::Spreadsheet_Excel_Writer_Worksheet (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Xf.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Xf.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php index f803f68346b..99f1b2a0c9a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Excel5/Xf.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ // Original file header of PEAR::Spreadsheet_Excel_Writer_Format (used as the base for this class): diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Writer/Exception.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php index e8fe9be783d..1715587a278 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/HTML.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/HTML.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php index 0f2cc089f6b..72fd81856d4 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/HTML.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_HTML * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/IWriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/Writer/IWriter.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php index 6974c93c875..f0b94b9e9ab 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/IWriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/Writer/PDF.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php index 65fb50edcdc..4111f8bd99a 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/Core.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/PDF/Core.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php index 3b281f4e582..3842334d9f7 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/Core.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/DomPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/PDF/DomPDF.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php index 111dd36078c..9ba97efcf22 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/DomPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/mPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/PDF/mPDF.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php index 8e274f4ce79..dddc097d343 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/mPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/tcPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/Writer/PDF/tcPDF.php rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php index c3809ec750c..4e1937afc70 100644 --- a/htdocs/includes/phpexcel/PHPExcel/Writer/PDF/tcPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php @@ -22,7 +22,7 @@ * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version 1.8.0, 2014-03-02 + * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/bg/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config similarity index 97% rename from htdocs/includes/phpexcel/PHPExcel/locale/bg/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config index d7ecb2b2ab1..4cecddb3c3c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/bg/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config @@ -22,7 +22,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/cs/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/cs/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config index af4589b0955..42cdf326704 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/cs/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/cs/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/cs/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions index f324759d247..c0a3cbbf9da 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/cs/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/da/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/da/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config index 1ddecb936f4..ae5900311e8 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/da/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/da/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/da/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions index 102d57843e7..26e0310c1a1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/da/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/de/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/de/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config index c9972751661..aa0228e7f97 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/de/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/de/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/de/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions index 8ce08de4d5d..3147f9c8be7 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/de/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/en/uk/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/en/uk/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config index dfcc63b0e8f..532080b57b0 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/en/uk/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/es/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config similarity index 94% rename from htdocs/includes/phpexcel/PHPExcel/locale/es/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config index 0b11eb7af07..96cfa69db17 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/es/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/es/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/es/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions index f6e6fd2b6b3..48762695bf8 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/es/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/fi/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/fi/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config index 380f39793d7..498cf4ceb8e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/fi/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/fi/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/fi/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions index bf60bec0012..6a7c2b36f87 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/fi/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/fr/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/fr/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config index 368b3c3cc3d..1f5db88c43b 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/fr/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/fr/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/fr/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions index e85dba5b89a..03b80e5a401 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/fr/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/hu/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/hu/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config index e04151cb8a7..080b2018faa 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/hu/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/hu/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/hu/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions index 77cae928e60..200d3f71fe2 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/hu/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/it/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/it/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config index 94499fe2767..c3afa754b90 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/it/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/it/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/it/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions index 033b9696420..d371f3d72eb 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/it/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/nl/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/nl/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config index 00c1b0ff592..48dcc15b507 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/nl/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/nl/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/nl/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions index 63800086167..573600aca45 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/nl/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/no/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/no/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config index 5bf96a1b18a..bf2d34a7f2c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/no/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/no/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/no/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions index 917c7f7d79a..10d0a20762e 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/no/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pl/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/pl/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config index 5061311c85d..4dd75bee69c 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/pl/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pl/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/pl/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions index 14499c05926..1881a71e57f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/pl/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pt/br/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/pt/br/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config index b4bf7041d22..45b6fbd92d1 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/pt/br/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pt/br/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/functions similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/locale/pt/br/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/functions diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pt/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/pt/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config index 60b422bd4c7..8bb8d8b8ea0 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/pt/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/pt/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/functions similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/locale/pt/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/functions diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/ru/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/ru/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config index 6f6ace23116..56e45bfda8f 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/ru/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/ru/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions similarity index 99% rename from htdocs/includes/phpexcel/PHPExcel/locale/ru/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions index bd636861950..5ff6d4fbfe9 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/ru/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from information provided by web-junior (http://www.web-junior.net/) ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/sv/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/sv/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config index 5d1a9a9fbde..726f77164e4 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/sv/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/sv/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/functions similarity index 100% rename from htdocs/includes/phpexcel/PHPExcel/locale/sv/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/functions diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/tr/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config similarity index 93% rename from htdocs/includes/phpexcel/PHPExcel/locale/tr/config rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config index de69cf5872c..b69d4257a50 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/tr/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config @@ -21,7 +21,7 @@ ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpexcel/PHPExcel/locale/tr/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions similarity index 98% rename from htdocs/includes/phpexcel/PHPExcel/locale/tr/functions rename to htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions index c327bca4265..45d7df1fecc 100644 --- a/htdocs/includes/phpexcel/PHPExcel/locale/tr/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions @@ -21,7 +21,7 @@ ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) ## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version 1.8.0, 2014-03-02 +## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ ## diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore b/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore new file mode 100644 index 00000000000..1888a98fa19 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore @@ -0,0 +1,3 @@ + +*.xls +*.xlsx \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php b/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php new file mode 100644 index 00000000000..a8804770129 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php @@ -0,0 +1,112 @@ +'); + +/** Include PHPExcel */ +require_once '../Build/PHPExcel.phar'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("PHPExcel Test Document") + ->setSubject("PHPExcel Test Document") + ->setDescription("Test document for PHPExcel, generated using PHP classes.") + ->setKeywords("office PHPExcel php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel5 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php new file mode 100644 index 00000000000..287b0e891bd --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php @@ -0,0 +1,104 @@ +getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("PDF Test Document") + ->setSubject("PDF Test Document") + ->setDescription("Test document for PDF, generated using PHP classes.") + ->setKeywords("pdf php") + ->setCategory("Test result file"); + + +// Add some data +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$objPHPExcel->getActiveSheet()->setTitle('Simple'); +$objPHPExcel->getActiveSheet()->setShowGridLines(false); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +if (!PHPExcel_Settings::setPdfRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + '
    ' . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +// Redirect output to a client’s web browser (PDF) +header('Content-Type: application/pdf'); +header('Content-Disposition: attachment;filename="01simple.pdf"'); +header('Cache-Control: max-age=0'); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); +$objWriter->save('php://output'); +exit; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php new file mode 100644 index 00000000000..60fc901bf8d --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php @@ -0,0 +1,89 @@ +getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Redirect output to a client’s web browser (Excel5) +header('Content-Type: application/vnd.ms-excel'); +header('Content-Disposition: attachment;filename="01simple.xls"'); +header('Cache-Control: max-age=0'); +// If you're serving to IE 9, then the following may be needed +header('Cache-Control: max-age=1'); + +// If you're serving to IE over SSL, then the following may be needed +header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past +header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified +header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 +header ('Pragma: public'); // HTTP/1.0 + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save('php://output'); +exit; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php new file mode 100644 index 00000000000..538888ea735 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php @@ -0,0 +1,89 @@ +getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Redirect output to a client’s web browser (Excel2007) +header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); +header('Content-Disposition: attachment;filename="01simple.xlsx"'); +header('Cache-Control: max-age=0'); +// If you're serving to IE 9, then the following may be needed +header('Cache-Control: max-age=1'); + +// If you're serving to IE over SSL, then the following may be needed +header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past +header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified +header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 +header ('Pragma: public'); // HTTP/1.0 + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save('php://output'); +exit; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php new file mode 100644 index 00000000000..965fefafebc --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php @@ -0,0 +1,118 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("PHPExcel Test Document") + ->setSubject("PHPExcel Test Document") + ->setDescription("Test document for PHPExcel, generated using PHP classes.") + ->setKeywords("office PHPExcel php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + + +$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); +$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); +$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); + + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php new file mode 100644 index 00000000000..0b7a46c17d5 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php @@ -0,0 +1,106 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("PHPExcel Test Document") + ->setSubject("PHPExcel Test Document") + ->setDescription("Test document for PHPExcel, generated using PHP classes.") + ->setKeywords("office PHPExcel php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + + +$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); +$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); +$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); + + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +// Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file +PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php new file mode 100644 index 00000000000..cc1dc3744f9 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php @@ -0,0 +1,183 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + +// Set default font +echo date('H:i:s') , " Set default font" , EOL; +$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial') + ->setSize(10); + +// Add some data, resembling some different data types +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String') + ->setCellValue('B1', 'Simple') + ->setCellValue('C1', 'PHPExcel'); + +$objPHPExcel->getActiveSheet()->setCellValue('A2', 'String') + ->setCellValue('B2', 'Symbols') + ->setCellValue('C2', '!+&=()~§±æþ'); + +$objPHPExcel->getActiveSheet()->setCellValue('A3', 'String') + ->setCellValue('B3', 'UTF-8') + ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов'); + +$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number') + ->setCellValue('B4', 'Integer') + ->setCellValue('C4', 12); + +$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number') + ->setCellValue('B5', 'Float') + ->setCellValue('C5', 34.56); + +$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number') + ->setCellValue('B6', 'Negative') + ->setCellValue('C6', -7.89); + +$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean') + ->setCellValue('B7', 'True') + ->setCellValue('C7', true); + +$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean') + ->setCellValue('B8', 'False') + ->setCellValue('C8', false); + +$dateTimeNow = time(); +$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time') + ->setCellValue('B9', 'Date') + ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); + +$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time') + ->setCellValue('B10', 'Time') + ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4); + +$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time') + ->setCellValue('B11', 'Date and Time') + ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME); + +$objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL') + ->setCellValue('C12', NULL); + +$objRichText = new PHPExcel_RichText(); +$objRichText->createText('你好 '); +$objPayable = $objRichText->createTextRun('你 好 吗?'); +$objPayable->getFont()->setBold(true); +$objPayable->getFont()->setItalic(true); +$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) ); + +$objRichText->createText(', unless specified otherwise on the invoice.'); + +$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text') + ->setCellValue('C13', $objRichText); + + +$objRichText2 = new PHPExcel_RichText(); +$objRichText2->createText("black text\n"); + +$objRed = $objRichText2->createTextRun("red text"); +$objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ) ); + +$objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2); +$objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true); + + +$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Datatypes'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Reload workbook from saved file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__)); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +var_dump($objPHPExcel->getActiveSheet()->toArray()); + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done testing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/02types.php b/htdocs/includes/phpoffice/phpexcel/Examples/02types.php new file mode 100644 index 00000000000..ff5421e4bba --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/02types.php @@ -0,0 +1,183 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + +// Set default font +echo date('H:i:s') , " Set default font" , EOL; +$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial') + ->setSize(10); + +// Add some data, resembling some different data types +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String') + ->setCellValue('B1', 'Simple') + ->setCellValue('C1', 'PHPExcel'); + +$objPHPExcel->getActiveSheet()->setCellValue('A2', 'String') + ->setCellValue('B2', 'Symbols') + ->setCellValue('C2', '!+&=()~§±æþ'); + +$objPHPExcel->getActiveSheet()->setCellValue('A3', 'String') + ->setCellValue('B3', 'UTF-8') + ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов'); + +$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number') + ->setCellValue('B4', 'Integer') + ->setCellValue('C4', 12); + +$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number') + ->setCellValue('B5', 'Float') + ->setCellValue('C5', 34.56); + +$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number') + ->setCellValue('B6', 'Negative') + ->setCellValue('C6', -7.89); + +$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean') + ->setCellValue('B7', 'True') + ->setCellValue('C7', true); + +$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean') + ->setCellValue('B8', 'False') + ->setCellValue('C8', false); + +$dateTimeNow = time(); +$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time') + ->setCellValue('B9', 'Date') + ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); + +$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time') + ->setCellValue('B10', 'Time') + ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4); + +$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time') + ->setCellValue('B11', 'Date and Time') + ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow )); +$objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME); + +$objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL') + ->setCellValue('C12', NULL); + +$objRichText = new PHPExcel_RichText(); +$objRichText->createText('你好 '); + +$objPayable = $objRichText->createTextRun('你 好 吗?'); +$objPayable->getFont()->setBold(true); +$objPayable->getFont()->setItalic(true); +$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) ); + +$objRichText->createText(', unless specified otherwise on the invoice.'); + +$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text') + ->setCellValue('C13', $objRichText); + + +$objRichText2 = new PHPExcel_RichText(); +$objRichText2->createText("black text\n"); + +$objRed = $objRichText2->createTextRun("red text"); +$objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ) ); + +$objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2); +$objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true); + + +$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Datatypes'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Reload workbook from saved file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__)); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +var_dump($objPHPExcel->getActiveSheet()->toArray()); + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done testing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php b/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php new file mode 100644 index 00000000000..1396717d79d --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php @@ -0,0 +1,149 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data, we will use some formulas here +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Sum:'); + +$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range #1') + ->setCellValue('B2', 3) + ->setCellValue('B3', 7) + ->setCellValue('B4', 13) + ->setCellValue('B5', '=SUM(B2:B4)'); +echo date('H:i:s') , " Sum of Range #1 is " , + $objPHPExcel->getActiveSheet()->getCell('B5')->getCalculatedValue() , EOL; + +$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range #2') + ->setCellValue('C2', 5) + ->setCellValue('C3', 11) + ->setCellValue('C4', 17) + ->setCellValue('C5', '=SUM(C2:C4)'); +echo date('H:i:s') , " Sum of Range #2 is " , + $objPHPExcel->getActiveSheet()->getCell('C5')->getCalculatedValue() , EOL; + +$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total of both ranges:'); +$objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)'); +echo date('H:i:s') , " Sum of both Ranges is " , + $objPHPExcel->getActiveSheet()->getCell('B7')->getCalculatedValue() , EOL; + +$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Minimum of both ranges:'); +$objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C4)'); +echo date('H:i:s') , " Minimum value in either Range is " , + $objPHPExcel->getActiveSheet()->getCell('B8')->getCalculatedValue() , EOL; + +$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Maximum of both ranges:'); +$objPHPExcel->getActiveSheet()->setCellValue('B9', '=MAX(B2:C4)'); +echo date('H:i:s') , " Maximum value in either Range is " , + $objPHPExcel->getActiveSheet()->getCell('B9')->getCalculatedValue() , EOL; + +$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Average of both ranges:'); +$objPHPExcel->getActiveSheet()->setCellValue('B10', '=AVERAGE(B2:C4)'); +echo date('H:i:s') , " Average value of both Ranges is " , + $objPHPExcel->getActiveSheet()->getCell('B10')->getCalculatedValue() , EOL; + + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Formulas'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); + +// +// If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the +// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae +// using functions or features (such as array formulae) that aren't yet supported by the calculation engine +// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to +// open the file) will need to recalculate values itself to guarantee that the correct results are available. +// +//$objWriter->setPreCalculateFormulas(true); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php b/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php new file mode 100644 index 00000000000..14358b05e74 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php @@ -0,0 +1,125 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data, we will use printing features +echo date('H:i:s') , " Add some data" , EOL; +for ($i = 1; $i < 200; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i); + $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value'); +} + +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +echo date('H:i:s') , " Set header/footer" , EOL; +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&G&C&HPlease treat this document as confidential!'); +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N'); + +// Add a drawing to the header +echo date('H:i:s') , " Add a drawing to the header" , EOL; +$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing(); +$objDrawing->setName('PHPExcel logo'); +$objDrawing->setPath('./images/phpexcel_logo.gif'); +$objDrawing->setHeight(36); +$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT); + +// Set page orientation and size +echo date('H:i:s') , " Set page orientation and size" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); +$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Printing'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php new file mode 100644 index 00000000000..00a8b8729b3 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php @@ -0,0 +1,393 @@ +getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet, representing sales data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Invoice'); +$objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel( gmmktime(0,0,0,date('m'),date('d'),date('Y')) )); +$objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15); +$objPHPExcel->getActiveSheet()->setCellValue('E1', '#12566'); + +$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Product Id'); +$objPHPExcel->getActiveSheet()->setCellValue('B3', 'Description'); +$objPHPExcel->getActiveSheet()->setCellValue('C3', 'Price'); +$objPHPExcel->getActiveSheet()->setCellValue('D3', 'Amount'); +$objPHPExcel->getActiveSheet()->setCellValue('E3', 'Total'); + +$objPHPExcel->getActiveSheet()->setCellValue('A4', '1001'); +$objPHPExcel->getActiveSheet()->setCellValue('B4', 'PHP for dummies'); +$objPHPExcel->getActiveSheet()->setCellValue('C4', '20'); +$objPHPExcel->getActiveSheet()->setCellValue('D4', '1'); +$objPHPExcel->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")'); + +$objPHPExcel->getActiveSheet()->setCellValue('A5', '1012'); +$objPHPExcel->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies'); +$objPHPExcel->getActiveSheet()->setCellValue('C5', '22'); +$objPHPExcel->getActiveSheet()->setCellValue('D5', '2'); +$objPHPExcel->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")'); + +$objPHPExcel->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")'); +$objPHPExcel->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")'); +$objPHPExcel->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")'); +$objPHPExcel->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")'); + +$objPHPExcel->getActiveSheet()->setCellValue('D11', 'Total excl.:'); +$objPHPExcel->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)'); + +$objPHPExcel->getActiveSheet()->setCellValue('D12', 'VAT:'); +$objPHPExcel->getActiveSheet()->setCellValue('E12', '=E11*0.21'); + +$objPHPExcel->getActiveSheet()->setCellValue('D13', 'Total incl.:'); +$objPHPExcel->getActiveSheet()->setCellValue('E13', '=E11+E12'); + +// Add comment +echo date('H:i:s') , " Add comments" , EOL; + +$objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel'); +$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:'); +$objCommentRichText->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n"); +$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.'); + +$objPHPExcel->getActiveSheet()->getComment('E12')->setAuthor('PHPExcel'); +$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('PHPExcel:'); +$objCommentRichText->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n"); +$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.'); + +$objPHPExcel->getActiveSheet()->getComment('E13')->setAuthor('PHPExcel'); +$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('PHPExcel:'); +$objCommentRichText->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n"); +$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.'); +$objPHPExcel->getActiveSheet()->getComment('E13')->setWidth('100pt'); +$objPHPExcel->getActiveSheet()->getComment('E13')->setHeight('100pt'); +$objPHPExcel->getActiveSheet()->getComment('E13')->setMarginLeft('150pt'); +$objPHPExcel->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE'); + + +// Add rich-text string +echo date('H:i:s') , " Add rich-text string" , EOL; +$objRichText = new PHPExcel_RichText(); +$objRichText->createText('This invoice is '); + +$objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month'); +$objPayable->getFont()->setBold(true); +$objPayable->getFont()->setItalic(true); +$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) ); + +$objRichText->createText(', unless specified otherwise on the invoice.'); + +$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText); + +// Merge cells +echo date('H:i:s') , " Merge cells" , EOL; +$objPHPExcel->getActiveSheet()->mergeCells('A18:E22'); +$objPHPExcel->getActiveSheet()->mergeCells('A28:B28'); // Just to test... +$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // Just to test... + +// Protect cells +echo date('H:i:s') , " Protect cells" , EOL; +$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection! +$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel'); + +// Set cell number formats +echo date('H:i:s') , " Set cell number formats" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +// Set column widths +echo date('H:i:s') , " Set column widths" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12); +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12); + +// Set fonts +echo date('H:i:s') , " Set fonts" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara'); +$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20); +$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); +$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); + +$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); +$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); + +$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true); + +// Set alignments +echo date('H:i:s') , " Set alignments" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); +$objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); +$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + +$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY); +$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); + +$objPHPExcel->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true); + +// Set thin black border outline around column +echo date('H:i:s') , " Set thin black border outline around column" , EOL; +$styleThinBlackBorderOutline = array( + 'borders' => array( + 'outline' => array( + 'style' => PHPExcel_Style_Border::BORDER_THIN, + 'color' => array('argb' => 'FF000000'), + ), + ), +); +$objPHPExcel->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline); + + +// Set thick brown border outline around "Total" +echo date('H:i:s') , " Set thick brown border outline around Total" , EOL; +$styleThickBrownBorderOutline = array( + 'borders' => array( + 'outline' => array( + 'style' => PHPExcel_Style_Border::BORDER_THICK, + 'color' => array('argb' => 'FF993300'), + ), + ), +); +$objPHPExcel->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline); + +// Set fills +echo date('H:i:s') , " Set fills" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); +$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080'); + +// Set style for header row using alternative method +echo date('H:i:s') , " Set style for header row using alternative method" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('A3:E3')->applyFromArray( + array( + 'font' => array( + 'bold' => true + ), + 'alignment' => array( + 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, + ), + 'borders' => array( + 'top' => array( + 'style' => PHPExcel_Style_Border::BORDER_THIN + ) + ), + 'fill' => array( + 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, + 'rotation' => 90, + 'startcolor' => array( + 'argb' => 'FFA0A0A0' + ), + 'endcolor' => array( + 'argb' => 'FFFFFFFF' + ) + ) + ) +); + +$objPHPExcel->getActiveSheet()->getStyle('A3')->applyFromArray( + array( + 'alignment' => array( + 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT, + ), + 'borders' => array( + 'left' => array( + 'style' => PHPExcel_Style_Border::BORDER_THIN + ) + ) + ) +); + +$objPHPExcel->getActiveSheet()->getStyle('B3')->applyFromArray( + array( + 'alignment' => array( + 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT, + ) + ) +); + +$objPHPExcel->getActiveSheet()->getStyle('E3')->applyFromArray( + array( + 'borders' => array( + 'right' => array( + 'style' => PHPExcel_Style_Border::BORDER_THIN + ) + ) + ) +); + +// Unprotect a cell +echo date('H:i:s') , " Unprotect a cell" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); + +// Add a hyperlink to the sheet +echo date('H:i:s') , " Add a hyperlink to the sheet" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net'); +$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net'); +$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website'); +$objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + +$objPHPExcel->getActiveSheet()->setCellValue('E27', 'Terms and conditions'); +$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1"); +$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions'); +$objPHPExcel->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + +// Add a drawing to the worksheet +echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; +$objDrawing = new PHPExcel_Worksheet_Drawing(); +$objDrawing->setName('Logo'); +$objDrawing->setDescription('Logo'); +$objDrawing->setPath('./images/officelogo.jpg'); +$objDrawing->setHeight(36); +$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); + +// Add a drawing to the worksheet +echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; +$objDrawing = new PHPExcel_Worksheet_Drawing(); +$objDrawing->setName('Paid'); +$objDrawing->setDescription('Paid'); +$objDrawing->setPath('./images/paid.png'); +$objDrawing->setCoordinates('B15'); +$objDrawing->setOffsetX(110); +$objDrawing->setRotation(25); +$objDrawing->getShadow()->setVisible(true); +$objDrawing->getShadow()->setDirection(45); +$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); + +// Add a drawing to the worksheet +echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; +$objDrawing = new PHPExcel_Worksheet_Drawing(); +$objDrawing->setName('PHPExcel logo'); +$objDrawing->setDescription('PHPExcel logo'); +$objDrawing->setPath('./images/phpexcel_logo.gif'); +$objDrawing->setHeight(36); +$objDrawing->setCoordinates('D24'); +$objDrawing->setOffsetX(10); +$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); + +// Play around with inserting and removing rows and columns +echo date('H:i:s') , " Play around with inserting and removing rows and columns" , EOL; +$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10); +$objPHPExcel->getActiveSheet()->removeRow(6, 10); +$objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5); +$objPHPExcel->getActiveSheet()->removeColumn('E', 5); + +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +echo date('H:i:s') , " Set header/footer" , EOL; +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D'); +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N'); + +// Set page orientation and size +echo date('H:i:s') , " Set page orientation and size" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); +$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); + +// Rename first worksheet +echo date('H:i:s') , " Rename first worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Invoice'); + + +// Create a new worksheet, after the default sheet +echo date('H:i:s') , " Create a second Worksheet object" , EOL; +$objPHPExcel->createSheet(); + +// Llorem ipsum... +$sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.'; + +// Add some data to the second sheet, resembling some different data types +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(1); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Terms and conditions'); +$objPHPExcel->getActiveSheet()->setCellValue('A3', $sLloremIpsum); +$objPHPExcel->getActiveSheet()->setCellValue('A4', $sLloremIpsum); +$objPHPExcel->getActiveSheet()->setCellValue('A5', $sLloremIpsum); +$objPHPExcel->getActiveSheet()->setCellValue('A6', $sLloremIpsum); + +// Set the worksheet tab color +echo date('H:i:s') , " Set the worksheet tab color" , EOL; +$objPHPExcel->getActiveSheet()->getTabColor()->setARGB('FF0094FF');; + +// Set alignments +echo date('H:i:s') , " Set alignments" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true); + +// Set column widths +echo date('H:i:s') , " Set column widths" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80); + +// Set fonts +echo date('H:i:s') , " Set fonts" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara'); +$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); +$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); + +$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8); + +// Add a drawing to the worksheet +echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; +$objDrawing = new PHPExcel_Worksheet_Drawing(); +$objDrawing->setName('Terms and conditions'); +$objDrawing->setDescription('Terms and conditions'); +$objDrawing->setPath('./images/termsconditions.jpg'); +$objDrawing->setCoordinates('B14'); +$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); + +// Set page orientation and size +echo date('H:i:s') , " Set page orientation and size" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); +$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); + +// Rename second worksheet +echo date('H:i:s') , " Rename second worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Terms and conditions'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php new file mode 100644 index 00000000000..66d4980ec51 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php @@ -0,0 +1,78 @@ +'); + +date_default_timezone_set('Europe/London'); + +include "05featuredemo.inc.php"; + +/** Include PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php new file mode 100644 index 00000000000..cbdb59b91b1 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php @@ -0,0 +1,129 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + +$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite; +if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) { + echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; +} else { + echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL; +} + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); +$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); +$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); +$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); +$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); + + +// Hide "Phone" and "fax" column +echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); + + +// Set outline levels +echo date('H:i:s') , " Set outline levels" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +echo date('H:i:s') , " Freeze panes" , EOL; +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + +// Rows to repeat at top +echo date('H:i:s') , " Rows to repeat at top" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + + +// Add data +for ($i = 2; $i <= 5000; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php new file mode 100644 index 00000000000..ca04f85e92c --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php @@ -0,0 +1,129 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + +$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3; +if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) { + echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; +} else { + echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL; +} + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); +$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); +$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); +$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); +$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); + + +// Hide "Phone" and "fax" column +echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); + + +// Set outline levels +echo date('H:i:s') , " Set outline levels" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +echo date('H:i:s') , " Freeze panes" , EOL; +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + +// Rows to repeat at top +echo date('H:i:s') , " Rows to repeat at top" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + + +// Add data +for ($i = 2; $i <= 5000; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php new file mode 100644 index 00000000000..aa23b8cbb8a --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php @@ -0,0 +1,128 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + +$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; +if (!PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) { + die($cacheMethod . " caching method is not available" . EOL); +} +echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); +$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); +$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); +$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); +$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); + + +// Hide "Phone" and "fax" column +echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); + + +// Set outline levels +echo date('H:i:s') , " Set outline levels" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +echo date('H:i:s') , " Freeze panes" , EOL; +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + +// Rows to repeat at top +echo date('H:i:s') , " Rows to repeat at top" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + + +// Add data +for ($i = 2; $i <= 5000; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php new file mode 100644 index 00000000000..00137ad896b --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php @@ -0,0 +1,136 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +/* +After doing some test, I've got these results benchmarked +for writing to Excel2007: + + Number of rows Seconds to generate + 200 3 + 500 4 + 1000 6 + 2000 12 + 4000 36 + 8000 64 + 15000 465 +*/ + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); +$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); +$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); +$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); +$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); + + +// Hide "Phone" and "fax" column +echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); + + +// Set outline levels +echo date('H:i:s') , " Set outline levels" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +echo date('H:i:s') , " Freeze panes" , EOL; +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + +// Rows to repeat at top +echo date('H:i:s') , " Rows to repeat at top" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + + +// Add data +for ($i = 2; $i <= 5000; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php new file mode 100644 index 00000000000..b0fa44047a3 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php @@ -0,0 +1,136 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +/* +After doing some test, I've got these results benchmarked +for writing to Excel2007: + + Number of rows Seconds to generate + 200 3 + 500 4 + 1000 6 + 2000 12 + 4000 36 + 8000 64 + 15000 465 +*/ + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); +$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); +$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); +$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); +$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); + + +// Hide "Phone" and "fax" column +echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); + + +// Set outline levels +echo date('H:i:s') , " Set outline levels" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +echo date('H:i:s') , " Freeze panes" , EOL; +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + +// Rows to repeat at top +echo date('H:i:s') , " Rows to repeat at top" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + + +// Add data +for ($i = 2; $i <= 5000; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php b/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php new file mode 100644 index 00000000000..616b6622ff9 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php @@ -0,0 +1,76 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +if (!file_exists("05featuredemo.xlsx")) { + exit("Please run 05featuredemo.php first." . EOL); +} + +echo date('H:i:s') , " Load from Excel2007 file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx"); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php b/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php new file mode 100644 index 00000000000..90e85905019 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php @@ -0,0 +1,79 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +if (!file_exists("05featuredemo.xlsx")) { + exit("Please run 05featuredemo.php first." . EOL); +} + +// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file +PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); + +echo date('H:i:s') , " Load from Excel2007 file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx"); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php new file mode 100644 index 00000000000..f65ec9efd32 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php @@ -0,0 +1,189 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet, representing sales data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Description') + ->setCellValue('B1', 'Amount'); + +$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Paycheck received') + ->setCellValue('B2', 100); + +$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought') + ->setCellValue('B3', -1.5); + +$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Cup of coffee bought') + ->setCellValue('B4', -1.5); + +$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Cup of tea bought') + ->setCellValue('B5', -1.2); + +$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Found some money') + ->setCellValue('B6', 8); + +$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total:') + ->setCellValue('B7', '=SUM(B2:B6)'); + + +// Set column widths +echo date('H:i:s') , " Set column widths" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30); +$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12); + + +// Add conditional formatting +echo date('H:i:s') , " Add conditional formatting" , EOL; +$objConditional1 = new PHPExcel_Style_Conditional(); +$objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) + ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_BETWEEN) + ->addCondition('200') + ->addCondition('400'); +$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_YELLOW); +$objConditional1->getStyle()->getFont()->setBold(true); +$objConditional1->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$objConditional2 = new PHPExcel_Style_Conditional(); +$objConditional2->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) + ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN) + ->addCondition('0'); +$objConditional2->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED); +$objConditional2->getStyle()->getFont()->setItalic(true); +$objConditional2->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$objConditional3 = new PHPExcel_Style_Conditional(); +$objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) + ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL) + ->addCondition('0'); +$objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN); +$objConditional3->getStyle()->getFont()->setItalic(true); +$objConditional3->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(); +array_push($conditionalStyles, $objConditional1); +array_push($conditionalStyles, $objConditional2); +array_push($conditionalStyles, $objConditional3); +$objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles); + + +// duplicate the conditional styles across a range of cells +echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL; +$objPHPExcel->getActiveSheet()->duplicateConditionalStyle( + $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(), + 'B3:B7' + ); + + +// Set fonts +echo date('H:i:s') , " Set fonts" , EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true); +//$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true); +//$objPHPExcel->getActiveSheet()->getStyle('B7')->getFont()->setBold(true); + + +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +echo date('H:i:s') , " Set header/footer" , EOL; +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D'); +$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N'); + + +// Set page orientation and size +echo date('H:i:s') , " Set page orientation and size" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); +$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); + + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Invoice'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Save Excel5 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php new file mode 100644 index 00000000000..bbe084a26fb --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php @@ -0,0 +1,136 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet, representing sales data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet() + ->setCellValue('A1', '-0.5') + ->setCellValue('A2', '-0.25') + ->setCellValue('A3', '0.0') + ->setCellValue('A4', '0.25') + ->setCellValue('A5', '0.5') + ->setCellValue('A6', '0.75') + ->setCellValue('A7', '1.0') + ->setCellValue('A8', '1.25') +; + +$objPHPExcel->getActiveSheet()->getStyle('A1:A8') + ->getNumberFormat() + ->setFormatCode( + PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00 + ); + + +// Add conditional formatting +echo date('H:i:s') , " Add conditional formatting" , EOL; +$objConditional1 = new PHPExcel_Style_Conditional(); +$objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) + ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN) + ->addCondition('0'); +$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED); + +$objConditional3 = new PHPExcel_Style_Conditional(); +$objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) + ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL) + ->addCondition('1'); +$objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN); + +$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(); +array_push($conditionalStyles, $objConditional1); +array_push($conditionalStyles, $objConditional3); +$objPHPExcel->getActiveSheet()->getStyle('A1')->setConditionalStyles($conditionalStyles); + + +// duplicate the conditional styles across a range of cells +echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL; +$objPHPExcel->getActiveSheet()->duplicateConditionalStyle( + $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(), + 'A2:A8' + ); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Save Excel5 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php b/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php new file mode 100644 index 00000000000..6b8c185e3aa --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php @@ -0,0 +1,134 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data and page breaks" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname") + ->setCellValue('B1', "Lastname") + ->setCellValue('C1', "Phone") + ->setCellValue('D1', "Fax") + ->setCellValue('E1', "Is Client ?"); + + +// Add data +for ($i = 2; $i <= 50; $i++) { + $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i"); + $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, "LName $i"); + $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, "PhoneNo $i"); + $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, "FaxNo $i"); + $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, true); + + // Add page breaks every 10 rows + if ($i % 10 == 0) { + // Add a page break + $objPHPExcel->getActiveSheet()->setBreak( 'A' . $i, PHPExcel_Worksheet::BREAK_ROW ); + } +} + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setTitle('Printing Options'); + +// Set print headers +$objPHPExcel->getActiveSheet() + ->getHeaderFooter()->setOddHeader('&C&24&K0000FF&B&U&A'); +$objPHPExcel->getActiveSheet() + ->getHeaderFooter()->setEvenHeader('&C&24&K0000FF&B&U&A'); + +// Set print footers +$objPHPExcel->getActiveSheet() + ->getHeaderFooter()->setOddFooter('&R&D &T&C&F&LPage &P / &N'); +$objPHPExcel->getActiveSheet() + ->getHeaderFooter()->setEvenFooter('&L&D &T&C&F&RPage &P / &N'); + + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php new file mode 100644 index 00000000000..7542a52955c --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php @@ -0,0 +1,221 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s').' Create new PHPExcel object'.EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s').' Set document properties'.EOL; +$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PHPExcel Test Document') + ->setSubject('PHPExcel Test Document') + ->setDescription('Test document for PHPExcel, generated using PHP classes.') + ->setKeywords('office PHPExcel php') + ->setCategory('Test result file'); + +// Create the worksheet +echo date('H:i:s').' Add data'.EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure') + ; +$startYear = $endYear = $currentYear = date('Y'); +$startYear--; +$endYear++; + +$years = range($startYear,$endYear); +$periods = range(1,12); +$countries = array( 'United States', 'UK', 'France', 'Germany', + 'Italy', 'Spain', 'Portugal', 'Japan' + ); + +$row = 2; +foreach($years as $year) { + foreach($periods as $period) { + foreach($countries as $country) { + $endDays = date('t',mktime(0,0,0,$period,1,$year)); + for($i = 1; $i <= $endDays; ++$i) { + $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); + $salesValue = $invoiceValue = NULL; + $incomeOrExpenditure = rand(-1,1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = NULL; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } else { + $expenditure = NULL; + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } + $dataArray = array( $year, + $period, + $country, + $eDate, + $income, + $expenditure, + ); + $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); + } + } + } +} +$row--; + + +// Set styling +echo date('H:i:s').' Set styling'.EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); +$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + + +// Set autofilter range +echo date('H:i:s').' Set autofilter range'.EOL; +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); +echo date('H:i:s').' Set active filters'.EOL; +// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) +// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter +$autoFilter->getColumn('C') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'u*' + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('C') + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'japan' + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +// Filter the Date column on a filter value of the first day of every period of the current year +// We us a dateGroup ruletype for this, although it is still a standard filter +foreach($periods as $period) { + $endDate = date('t',mktime(0,0,0,$period,1,$currentYear)); + + $autoFilter->getColumn('D') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + array( + 'year' => $currentYear, + 'month' => $period, + 'day' => $endDate + ) + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP); +} +// Display only sales values that are blank +// Standard filter, operator equals, and value of NULL +$autoFilter->getColumn('E') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + '' + ); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; + +// Echo done +echo date('H:i:s').' Done writing files'.EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php new file mode 100644 index 00000000000..c89173f5c75 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php @@ -0,0 +1,213 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s').' Create new PHPExcel object'.EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s').' Set document properties'.EOL; +$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PHPExcel Test Document') + ->setSubject('PHPExcel Test Document') + ->setDescription('Test document for PHPExcel, generated using PHP classes.') + ->setKeywords('office PHPExcel php') + ->setCategory('Test result file'); + +// Create the worksheet +echo date('H:i:s').' Add data'.EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure') + ; +$startYear = $endYear = $currentYear = date('Y'); +$startYear--; +$endYear++; + +$years = range($startYear,$endYear); +$periods = range(1,12); +$countries = array( 'United States', 'UK', 'France', 'Germany', + 'Italy', 'Spain', 'Portugal', 'Japan' + ); + +$row = 2; +foreach($years as $year) { + foreach($periods as $period) { + foreach($countries as $country) { + $endDays = date('t',mktime(0,0,0,$period,1,$year)); + for($i = 1; $i <= $endDays; ++$i) { + $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); + $salesValue = $invoiceValue = NULL; + $incomeOrExpenditure = rand(-1,1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = NULL; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } else { + $expenditure = NULL; + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } + $dataArray = array( $year, + $period, + $country, + $eDate, + $income, + $expenditure, + ); + $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); + } + } + } +} +$row--; + + +// Set styling +echo date('H:i:s').' Set styling'.EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); +$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + + +// Set autofilter range +echo date('H:i:s').' Set autofilter range'.EOL; +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); +echo date('H:i:s').' Set active filters'.EOL; +// Filter the Country column on a filter value of Germany +// As it's just a simple value filter, we can use FILTERTYPE_FILTER +$autoFilter->getColumn('C') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'Germany' + ); +// Filter the Date column on a filter value of the year to date +$autoFilter->getColumn('D') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + NULL, + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); +// Display only sales values that are between 400 and 600 +$autoFilter->getColumn('E') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, + 400 + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('E') + ->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, + 600 + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; + +// Echo done +echo date('H:i:s').' Done writing files'.EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php new file mode 100644 index 00000000000..cf2b8acfd99 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php @@ -0,0 +1,198 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s').' Create new PHPExcel object'.EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s').' Set document properties'.EOL; +$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PHPExcel Test Document') + ->setSubject('PHPExcel Test Document') + ->setDescription('Test document for PHPExcel, generated using PHP classes.') + ->setKeywords('office PHPExcel php') + ->setCategory('Test result file'); + +// Create the worksheet +echo date('H:i:s').' Add data'.EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure') + ; +$startYear = $endYear = $currentYear = date('Y'); +$startYear--; +$endYear++; + +$years = range($startYear,$endYear); +$periods = range(1,12); +$countries = array( 'United States', 'UK', 'France', 'Germany', + 'Italy', 'Spain', 'Portugal', 'Japan' + ); + +$row = 2; +foreach($years as $year) { + foreach($periods as $period) { + foreach($countries as $country) { + $endDays = date('t',mktime(0,0,0,$period,1,$year)); + for($i = 1; $i <= $endDays; ++$i) { + $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); + $salesValue = $invoiceValue = NULL; + $incomeOrExpenditure = rand(-1,1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = NULL; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } else { + $expenditure = NULL; + $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; + } + $dataArray = array( $year, + $period, + $country, + $eDate, + $income, + $expenditure, + ); + $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); + } + } + } +} +$row--; + + +// Set styling +echo date('H:i:s').' Set styling'.EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); +$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2); +$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$objPHPExcel->getActiveSheet()->freezePane('A2'); + + + +// Set autofilter range +echo date('H:i:s').' Set autofilter range'.EOL; +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); +echo date('H:i:s').' Set active filters'.EOL; +// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) +// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter +$autoFilter->getColumn('C') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'u*' + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('C') + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'japan' + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +// Filter the Date column on a filter value of the first day of every period of the current year +// We us a dateGroup ruletype for this, although it is still a standard filter +foreach($periods as $period) { + $endDate = date('t',mktime(0,0,0,$period,1,$currentYear)); + + $autoFilter->getColumn('D') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + array( + 'year' => $currentYear, + 'month' => $period, + 'day' => $endDate + ) + ) + ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP); +} +// Display only sales values that are blank +// Standard filter, operator equals, and value of NULL +$autoFilter->getColumn('E') + ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + '' + ); + +// Execute filtering +echo date('H:i:s').' Execute filtering'.EOL; +$autoFilter->showHideRows(); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Display Results of filtering +echo date('H:i:s').' Display filtered rows'.EOL; +foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) { + if ($objPHPExcel->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) { + echo ' Row number - ' , $row->getRowIndex() , ' '; + echo $objPHPExcel->getActiveSheet()->getCell('C'.$row->getRowIndex())->getValue(), ' '; + echo $objPHPExcel->getActiveSheet()->getCell('D'.$row->getRowIndex())->getFormattedValue(), ' '; + echo EOL; + } +} diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php new file mode 100644 index 00000000000..ea3f76343b8 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php @@ -0,0 +1,171 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + +// Create new PHPExcel object +echo date('H:i:s').' Create new PHPExcel object'.EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s').' Set document properties'.EOL; +$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PHPExcel Test Document') + ->setSubject('PHPExcel Test Document') + ->setDescription('Test document for PHPExcel, generated using PHP classes.') + ->setKeywords('office PHPExcel php') + ->setCategory('Test result file'); + +// Create the worksheet +echo date('H:i:s').' Add data'.EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Year') + ->setCellValue('B1', 'Quarter') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Sales'); + +$dataArray = array(array('2010', 'Q1', 'United States', 790), + array('2010', 'Q2', 'United States', 730), + array('2010', 'Q3', 'United States', 860), + array('2010', 'Q4', 'United States', 850), + array('2011', 'Q1', 'United States', 800), + array('2011', 'Q2', 'United States', 700), + array('2011', 'Q3', 'United States', 900), + array('2011', 'Q4', 'United States', 950), + array('2010', 'Q1', 'Belgium', 380), + array('2010', 'Q2', 'Belgium', 390), + array('2010', 'Q3', 'Belgium', 420), + array('2010', 'Q4', 'Belgium', 460), + array('2011', 'Q1', 'Belgium', 400), + array('2011', 'Q2', 'Belgium', 350), + array('2011', 'Q3', 'Belgium', 450), + array('2011', 'Q4', 'Belgium', 500), + array('2010', 'Q1', 'UK', 690), + array('2010', 'Q2', 'UK', 610), + array('2010', 'Q3', 'UK', 620), + array('2010', 'Q4', 'UK', 600), + array('2011', 'Q1', 'UK', 720), + array('2011', 'Q2', 'UK', 650), + array('2011', 'Q3', 'UK', 580), + array('2011', 'Q4', 'UK', 510), + array('2010', 'Q1', 'France', 510), + array('2010', 'Q2', 'France', 490), + array('2010', 'Q3', 'France', 460), + array('2010', 'Q4', 'France', 590), + array('2011', 'Q1', 'France', 620), + array('2011', 'Q2', 'France', 650), + array('2011', 'Q3', 'France', 415), + array('2011', 'Q4', 'France', 570), + array('2010', 'Q1', 'Germany', 720), + array('2010', 'Q2', 'Germany', 680), + array('2010', 'Q3', 'Germany', 640), + array('2010', 'Q4', 'Germany', 660), + array('2011', 'Q1', 'Germany', 680), + array('2011', 'Q2', 'Germany', 620), + array('2011', 'Q3', 'Germany', 710), + array('2011', 'Q4', 'Germany', 690), + array('2010', 'Q1', 'Spain', 510), + array('2010', 'Q2', 'Spain', 490), + array('2010', 'Q3', 'Spain', 470), + array('2010', 'Q4', 'Spain', 420), + array('2011', 'Q1', 'Spain', 460), + array('2011', 'Q2', 'Spain', 390), + array('2011', 'Q3', 'Spain', 430), + array('2011', 'Q4', 'Spain', 415), + array('2010', 'Q1', 'Italy', 440), + array('2010', 'Q2', 'Italy', 410), + array('2010', 'Q3', 'Italy', 420), + array('2010', 'Q4', 'Italy', 450), + array('2011', 'Q1', 'Italy', 430), + array('2011', 'Q2', 'Italy', 370), + array('2011', 'Q3', 'Italy', 350), + array('2011', 'Q4', 'Italy', 335), + ); +$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2'); + +// Set title row bold +echo date('H:i:s').' Set title row bold'.EOL; +$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true); + +// Set autofilter +echo date('H:i:s').' Set autofilter'.EOL; +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; + +// Echo done +echo date('H:i:s').' Done writing files'.EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php new file mode 100644 index 00000000000..b104c7b8ac3 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php @@ -0,0 +1,109 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello'); +$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!'); +$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello'); +$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set document security +echo date('H:i:s') , " Set document security" , EOL; +$objPHPExcel->getSecurity()->setLockWindows(true); +$objPHPExcel->getSecurity()->setLockStructure(true); +$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel"); + + +// Set sheet security +echo date('H:i:s') , " Set sheet security" , EOL; +$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); +$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following! +$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); +$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); +$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php new file mode 100644 index 00000000000..96f5d99300d --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php @@ -0,0 +1,109 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello'); +$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!'); +$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello'); +$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set document security +echo date('H:i:s') , " Set document security" , EOL; +$objPHPExcel->getSecurity()->setLockWindows(true); +$objPHPExcel->getSecurity()->setLockStructure(true); +$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel"); + + +// Set sheet security +echo date('H:i:s') , " Set sheet security" , EOL; +$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); +$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following! +$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); +$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); +$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php b/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php new file mode 100644 index 00000000000..77bfee4ce4b --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php @@ -0,0 +1,107 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Mark Baker") + ->setLastModifiedBy("Mark Baker") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Crouching'); +$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Tiger'); +$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Hidden'); +$objPHPExcel->getActiveSheet()->setCellValue('B2', 'Dragon'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Set document security +echo date('H:i:s') , " Set cell protection" , EOL; + + +// Set sheet security +echo date('H:i:s') , " Set sheet security" , EOL; +$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); +$objPHPExcel->getActiveSheet() + ->getStyle('A2:B2') + ->getProtection()->setLocked( + PHPExcel_Style_Protection::PROTECTION_UNPROTECTED + ); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php b/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php new file mode 100644 index 00000000000..db149489d59 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php @@ -0,0 +1,234 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// List functions +echo date('H:i:s') , " List implemented functions" , EOL; +$objCalc = PHPExcel_Calculation::getInstance(); +print_r($objCalc->listFunctionNames()); + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Add some data, we will use some formulas here +echo date('H:i:s') , " Add some data and formulas" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:') + ->setCellValue('A15', 'Sum:') + ->setCellValue('A16', 'Max:') + ->setCellValue('A17', 'Min:') + ->setCellValue('A18', 'Average:') + ->setCellValue('A19', 'Median:') + ->setCellValue('A20', 'Mode:'); + +$objPHPExcel->getActiveSheet()->setCellValue('A22', 'CountA:') + ->setCellValue('A23', 'MaxA:') + ->setCellValue('A24', 'MinA:'); + +$objPHPExcel->getActiveSheet()->setCellValue('A26', 'StDev:') + ->setCellValue('A27', 'StDevA:') + ->setCellValue('A28', 'StDevP:') + ->setCellValue('A29', 'StDevPA:'); + +$objPHPExcel->getActiveSheet()->setCellValue('A31', 'DevSq:') + ->setCellValue('A32', 'Var:') + ->setCellValue('A33', 'VarA:') + ->setCellValue('A34', 'VarP:') + ->setCellValue('A35', 'VarPA:'); + +$objPHPExcel->getActiveSheet()->setCellValue('A37', 'Date:'); + + +$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1') + ->setCellValue('B2', 2) + ->setCellValue('B3', 8) + ->setCellValue('B4', 10) + ->setCellValue('B5', True) + ->setCellValue('B6', False) + ->setCellValue('B7', 'Text String') + ->setCellValue('B9', '22') + ->setCellValue('B10', 4) + ->setCellValue('B11', 6) + ->setCellValue('B12', 12); + +$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)') + ->setCellValue('B15', '=SUM(B2:B12)') + ->setCellValue('B16', '=MAX(B2:B12)') + ->setCellValue('B17', '=MIN(B2:B12)') + ->setCellValue('B18', '=AVERAGE(B2:B12)') + ->setCellValue('B19', '=MEDIAN(B2:B12)') + ->setCellValue('B20', '=MODE(B2:B12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('B22', '=COUNTA(B2:B12)') + ->setCellValue('B23', '=MAXA(B2:B12)') + ->setCellValue('B24', '=MINA(B2:B12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('B26', '=STDEV(B2:B12)') + ->setCellValue('B27', '=STDEVA(B2:B12)') + ->setCellValue('B28', '=STDEVP(B2:B12)') + ->setCellValue('B29', '=STDEVPA(B2:B12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('B31', '=DEVSQ(B2:B12)') + ->setCellValue('B32', '=VAR(B2:B12)') + ->setCellValue('B33', '=VARA(B2:B12)') + ->setCellValue('B34', '=VARP(B2:B12)') + ->setCellValue('B35', '=VARPA(B2:B12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('B37', '=DATE(2007, 12, 21)') + ->setCellValue('B38', '=DATEDIF( DATE(2007, 12, 21), DATE(2007, 12, 22), "D" )') + ->setCellValue('B39', '=DATEVALUE("01-Feb-2006 10:06 AM")') + ->setCellValue('B40', '=DAY( DATE(2006, 1, 2) )') + ->setCellValue('B41', '=DAYS360( DATE(2002, 2, 3), DATE(2005, 5, 31) )'); + + +$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2') + ->setCellValue('C2', 1) + ->setCellValue('C3', 2) + ->setCellValue('C4', 2) + ->setCellValue('C5', 3) + ->setCellValue('C6', 3) + ->setCellValue('C7', 3) + ->setCellValue('C8', '0') + ->setCellValue('C9', 4) + ->setCellValue('C10', 4) + ->setCellValue('C11', 4) + ->setCellValue('C12', 4); + +$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)') + ->setCellValue('C15', '=SUM(C2:C12)') + ->setCellValue('C16', '=MAX(C2:C12)') + ->setCellValue('C17', '=MIN(C2:C12)') + ->setCellValue('C18', '=AVERAGE(C2:C12)') + ->setCellValue('C19', '=MEDIAN(C2:C12)') + ->setCellValue('C20', '=MODE(C2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('C22', '=COUNTA(C2:C12)') + ->setCellValue('C23', '=MAXA(C2:C12)') + ->setCellValue('C24', '=MINA(C2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('C26', '=STDEV(C2:C12)') + ->setCellValue('C27', '=STDEVA(C2:C12)') + ->setCellValue('C28', '=STDEVP(C2:C12)') + ->setCellValue('C29', '=STDEVPA(C2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('C31', '=DEVSQ(C2:C12)') + ->setCellValue('C32', '=VAR(C2:C12)') + ->setCellValue('C33', '=VARA(C2:C12)') + ->setCellValue('C34', '=VARP(C2:C12)') + ->setCellValue('C35', '=VARPA(C2:C12)'); + + +$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3') + ->setCellValue('D2', 2) + ->setCellValue('D3', 3) + ->setCellValue('D4', 4); + +$objPHPExcel->getActiveSheet()->setCellValue('D14', '=((D2 * D3) + D4) & " should be 10"'); + +$objPHPExcel->getActiveSheet()->setCellValue('E12', 'Other functions') + ->setCellValue('E14', '=PI()') + ->setCellValue('E15', '=RAND()') + ->setCellValue('E16', '=RANDBETWEEN(5, 10)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E17', 'Count of both ranges:') + ->setCellValue('F17', '=COUNT(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E18', 'Total of both ranges:') + ->setCellValue('F18', '=SUM(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E19', 'Maximum of both ranges:') + ->setCellValue('F19', '=MAX(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E20', 'Minimum of both ranges:') + ->setCellValue('F20', '=MIN(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E21', 'Average of both ranges:') + ->setCellValue('F21', '=AVERAGE(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E22', 'Median of both ranges:') + ->setCellValue('F22', '=MEDIAN(B2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E23', 'Mode of both ranges:') + ->setCellValue('F23', '=MODE(B2:C12)'); + + +// Calculated data +echo date('H:i:s') , " Calculated data" , EOL; +for ($col = 'B'; $col != 'G'; ++$col) { + for($row = 14; $row <= 41; ++$row) { + if ((!is_null($formula = $objPHPExcel->getActiveSheet()->getCell($col.$row)->getValue())) && + ($formula[0] == '=')) { + echo 'Value of ' , $col , $row , ' [' , $formula , ']: ' , + $objPHPExcel->getActiveSheet()->getCell($col.$row)->getCalculatedValue() . EOL; + } + } +} + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); + +// +// If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the +// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae +// using functions or features (such as array formulae) that aren't yet supported by the calculation engine +// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to +// open the file) will need to recalculate values itself to guarantee that the correct results are available. +// +//$objWriter->setPreCalculateFormulas(true); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php new file mode 100644 index 00000000000..3fd3d69f328 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php @@ -0,0 +1,63 @@ +'); + +date_default_timezone_set('Europe/London'); + +include "05featuredemo.inc.php"; + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php new file mode 100644 index 00000000000..2f8fa5ee9d8 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php @@ -0,0 +1,142 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...") + ->setCellValue('A3', "Number:") + ->setCellValue('B3', "10") + ->setCellValue('A5', "List:") + ->setCellValue('B5', "Item A") + ->setCellValue('A7', "List #2:") + ->setCellValue('B7', "Item #2") + ->setCellValue('D2', "Item #1") + ->setCellValue('D3', "Item #2") + ->setCellValue('D4', "Item #3") + ->setCellValue('D5', "Item #4") + ->setCellValue('D6', "Item #5") + ; + + +// Set data validation +echo date('H:i:s') , " Set data validation" , EOL; +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP ); +$objValidation->setAllowBlank(true); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Only numbers between 10 and 20 are allowed!'); +$objValidation->setPromptTitle('Allowed input'); +$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.'); +$objValidation->setFormula1(10); +$objValidation->setFormula2(20); + +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION ); +$objValidation->setAllowBlank(false); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setShowDropDown(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Value is not in list.'); +$objValidation->setPromptTitle('Pick from list'); +$objValidation->setPrompt('Please pick a value from the drop-down list.'); +$objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " !!! + +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION ); +$objValidation->setAllowBlank(false); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setShowDropDown(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Value is not in list.'); +$objValidation->setPromptTitle('Pick from list'); +$objValidation->setPrompt('Please pick a value from the drop-down list.'); +$objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!! + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php new file mode 100644 index 00000000000..932bacc6fa0 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php @@ -0,0 +1,143 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Create a first sheet +echo date('H:i:s') , " Add data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...") + ->setCellValue('A3', "Number:") + ->setCellValue('B3', "10") + ->setCellValue('A5', "List:") + ->setCellValue('B5', "Item A") + ->setCellValue('A7', "List #2:") + ->setCellValue('B7', "Item #2") + ->setCellValue('D2', "Item #1") + ->setCellValue('D3', "Item #2") + ->setCellValue('D4', "Item #3") + ->setCellValue('D5', "Item #4") + ->setCellValue('D6', "Item #5") + ; + + +// Set data validation +echo date('H:i:s') , " Set data validation" , EOL; +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP ); +$objValidation->setAllowBlank(true); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Only numbers between 10 and 20 are allowed!'); +$objValidation->setPromptTitle('Allowed input'); +$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.'); +$objValidation->setFormula1(10); +$objValidation->setFormula2(20); + +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION ); +$objValidation->setAllowBlank(false); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setShowDropDown(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Value is not in list.'); +$objValidation->setPromptTitle('Pick from list'); +$objValidation->setPrompt('Please pick a value from the drop-down list.'); +$objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!! + + +$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation(); +$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST ); +$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION ); +$objValidation->setAllowBlank(false); +$objValidation->setShowInputMessage(true); +$objValidation->setShowErrorMessage(true); +$objValidation->setShowDropDown(true); +$objValidation->setErrorTitle('Input error'); +$objValidation->setError('Value is not in list.'); +$objValidation->setPromptTitle('Pick from list'); +$objValidation->setPrompt('Please pick a value from the drop-down list.'); +$objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!! + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php b/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php new file mode 100644 index 00000000000..71ebfd00dcc --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php @@ -0,0 +1,107 @@ +'); + +date_default_timezone_set('Europe/London'); + +include "05featuredemo.inc.php"; + +/** PHPExcel_IOFactory */ +require_once '../Classes/PHPExcel/IOFactory.php'; + + +echo date('H:i:s') , " Write to CSV format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',') + ->setEnclosure('"') + ->setLineEnding("\r\n") + ->setSheetIndex(0) + ->save(str_replace('.php', '.csv', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Read from CSV format" , EOL; +$callStartTime = microtime(true); +$objReader = PHPExcel_IOFactory::createReader('CSV')->setDelimiter(',') + ->setEnclosure('"') + ->setLineEnding("\r\n") + ->setSheetIndex(0); +$objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__)); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter2007 = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'Excel2007'); +$objWriter2007->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Write to CSV format" , EOL; +$callStartTime = microtime(true); + +$objWriterCSV = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'CSV'); +$objWriterCSV->setExcelCompatibility(true); +$objWriterCSV->save(str_replace('.php', '_excel.csv', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo date('H:i:s') , " File written to " , str_replace('.php', '_excel.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/17html.php b/htdocs/includes/phpoffice/phpexcel/Examples/17html.php new file mode 100644 index 00000000000..0dc825b04a1 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/17html.php @@ -0,0 +1,64 @@ +'); + +date_default_timezone_set('Europe/London'); + +include "05featuredemo.inc.php"; + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +echo date('H:i:s') , " Write to HTML format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); +$objWriter->setSheetIndex(0); +//$objWriter->setImagesRoot('http://www.example.com'); +$objWriter->save(str_replace('.php', '.htm', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php b/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php new file mode 100644 index 00000000000..3c6fcb49227 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php @@ -0,0 +1,108 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// List functions +echo date('H:i:s') . " List implemented functions\n"; +$objCalc = PHPExcel_Calculation::getInstance(); +print_r($objCalc->listFunctionNames()); + +// Create new PHPExcel object +echo date('H:i:s') . " Create new PHPExcel object\n"; +$objPHPExcel = new PHPExcel(); + +// Add some data, we will use some formulas here +echo date('H:i:s') . " Add some data\n"; +$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:'); + +$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1'); +$objPHPExcel->getActiveSheet()->setCellValue('B2', 2); +$objPHPExcel->getActiveSheet()->setCellValue('B3', 8); +$objPHPExcel->getActiveSheet()->setCellValue('B4', 10); +$objPHPExcel->getActiveSheet()->setCellValue('B5', True); +$objPHPExcel->getActiveSheet()->setCellValue('B6', False); +$objPHPExcel->getActiveSheet()->setCellValue('B7', 'Text String'); +$objPHPExcel->getActiveSheet()->setCellValue('B9', '22'); +$objPHPExcel->getActiveSheet()->setCellValue('B10', 4); +$objPHPExcel->getActiveSheet()->setCellValue('B11', 6); +$objPHPExcel->getActiveSheet()->setCellValue('B12', 12); + +$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2'); +$objPHPExcel->getActiveSheet()->setCellValue('C2', 1); +$objPHPExcel->getActiveSheet()->setCellValue('C3', 2); +$objPHPExcel->getActiveSheet()->setCellValue('C4', 2); +$objPHPExcel->getActiveSheet()->setCellValue('C5', 3); +$objPHPExcel->getActiveSheet()->setCellValue('C6', 3); +$objPHPExcel->getActiveSheet()->setCellValue('C7', 3); +$objPHPExcel->getActiveSheet()->setCellValue('C8', '0'); +$objPHPExcel->getActiveSheet()->setCellValue('C9', 4); +$objPHPExcel->getActiveSheet()->setCellValue('C10', 4); +$objPHPExcel->getActiveSheet()->setCellValue('C11', 4); +$objPHPExcel->getActiveSheet()->setCellValue('C12', 4); + +$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)'); + +$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3'); +$objPHPExcel->getActiveSheet()->setCellValue('D2', 2); +$objPHPExcel->getActiveSheet()->setCellValue('D3', 3); +$objPHPExcel->getActiveSheet()->setCellValue('D4', 4); + +$objPHPExcel->getActiveSheet()->setCellValue('D5', '=((D2 * D3) + D4) & " should be 10"'); + +$objPHPExcel->getActiveSheet()->setCellValue('E1', 'Other functions'); +$objPHPExcel->getActiveSheet()->setCellValue('E2', '=PI()'); +$objPHPExcel->getActiveSheet()->setCellValue('E3', '=RAND()'); +$objPHPExcel->getActiveSheet()->setCellValue('E4', '=RANDBETWEEN(5, 10)'); + +$objPHPExcel->getActiveSheet()->setCellValue('E14', 'Count of both ranges:'); +$objPHPExcel->getActiveSheet()->setCellValue('F14', '=COUNT(B2:C12)'); + +// Calculated data +echo date('H:i:s') . " Calculated data\n"; +echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n"; + + +// Echo memory peak usage +echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n"; + +// Echo done +echo date('H:i:s') . " Done" , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php b/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php new file mode 100644 index 00000000000..acea22b6d72 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php @@ -0,0 +1,129 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:') + ->setCellValue('A2', 'Lastname:') + ->setCellValue('A3', 'Fullname:') + ->setCellValue('B1', 'Maarten') + ->setCellValue('B2', 'Balliauw') + ->setCellValue('B3', '=B1 & " " & B2'); + +// Define named ranges +echo date('H:i:s') , " Define named ranges" , EOL; +$objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonName', $objPHPExcel->getActiveSheet(), 'B1') ); +$objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonLN', $objPHPExcel->getActiveSheet(), 'B2') ); + +// Rename named ranges +echo date('H:i:s') , " Rename named ranges" , EOL; +$objPHPExcel->getNamedRange('PersonName')->setName('PersonFN'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Person'); + + +// Create a new worksheet, after the default sheet +echo date('H:i:s') , " Create new Worksheet object" , EOL; +$objPHPExcel->createSheet(); + +// Add some data to the second sheet, resembling some different data types +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(1); +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:') + ->setCellValue('A2', 'Lastname:') + ->setCellValue('A3', 'Fullname:') + ->setCellValue('B1', '=PersonFN') + ->setCellValue('B2', '=PersonLN') + ->setCellValue('B3', '=PersonFN & " " & PersonLN'); + +// Resolve range +echo date('H:i:s') , " Resolve range" , EOL; +echo 'Cell B1 {=PersonFN}: ' , $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue() , EOL; +echo 'Cell B3 {=PersonFN & " " & PersonLN}: ' , $objPHPExcel->getActiveSheet()->getCell('B3')->getCalculatedValue() , EOL; +echo 'Cell Person!B1: ' , $objPHPExcel->getActiveSheet()->getCell('Person!B1')->getCalculatedValue() , EOL; + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Person (cloned)'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php new file mode 100644 index 00000000000..98eff9ec1b1 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php @@ -0,0 +1,79 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +if (!file_exists("14excel5.xls")) { + exit("Please run 14excel5.php first.\n"); +} + +echo date('H:i:s') , " Load workbook from Excel5 file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcel = PHPExcel_IOFactory::load("14excel5.xls"); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo 'Call time to load Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done reading file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php b/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php new file mode 100644 index 00000000000..11c56b2caf0 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php @@ -0,0 +1,94 @@ +'); + +date_default_timezone_set('Europe/London'); + +include "05featuredemo.inc.php"; + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF; +//$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF; +$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +//$rendererLibrary = 'mPDF5.4'; +$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + + +echo date('H:i:s') , " Hide grid lines" , EOL; +$objPHPExcel->getActiveSheet()->setShowGridLines(false); + +echo date('H:i:s') , " Set orientation to landscape" , EOL; +$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); + + +echo date('H:i:s') , " Write to PDF format using {$rendererName}" , EOL; + +if (!PHPExcel_Settings::setPdfRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); +$objWriter->setSheetIndex(0); +$objWriter->save(str_replace('.php', '_'.$rendererName.'.pdf', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo date('H:i:s') , " File written to " , str_replace('.php', '_'.$rendererName.'.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php b/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php new file mode 100644 index 00000000000..c17bc8683ae --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php @@ -0,0 +1,116 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); + +$objPHPExcel->getActiveSheet()->getStyle('A1:T100')->applyFromArray( + array('fill' => array( + 'type' => PHPExcel_Style_Fill::FILL_SOLID, + 'color' => array('argb' => 'FFCCFFCC') + ), + 'borders' => array( + 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), + 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM) + ) + ) + ); + +$objPHPExcel->getActiveSheet()->getStyle('C5:R95')->applyFromArray( + array('fill' => array( + 'type' => PHPExcel_Style_Fill::FILL_SOLID, + 'color' => array('argb' => 'FFFFFF00') + ), + ) + ); + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php b/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php new file mode 100644 index 00000000000..652b4ed2f27 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php @@ -0,0 +1,124 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0); + +$sharedStyle1 = new PHPExcel_Style(); +$sharedStyle2 = new PHPExcel_Style(); + +$sharedStyle1->applyFromArray( + array('fill' => array( + 'type' => PHPExcel_Style_Fill::FILL_SOLID, + 'color' => array('argb' => 'FFCCFFCC') + ), + 'borders' => array( + 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), + 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM) + ) + )); + +$sharedStyle2->applyFromArray( + array('fill' => array( + 'type' => PHPExcel_Style_Fill::FILL_SOLID, + 'color' => array('argb' => 'FFFFFF00') + ), + 'borders' => array( + 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), + 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM) + ) + )); + +$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle1, "A1:T100"); +$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, "C5:R95"); + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php b/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php new file mode 100644 index 00000000000..afa6d0c416c --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php @@ -0,0 +1,77 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +// Check prerequisites +if (!file_exists("06largescale.xlsx")) { + exit("Please run 06largescale.php first.\n"); +} + +class MyReadFilter implements PHPExcel_Reader_IReadFilter +{ + public function readCell($column, $row, $worksheetName = '') { + // Read title row and rows 20 - 30 + if ($row == 1 || ($row >= 20 && $row <= 30)) { + return true; + } + + return false; + } +} + + +echo date('H:i:s') , " Load from Excel2007 file" , EOL; +$objReader = PHPExcel_IOFactory::createReader('Excel2007'); +$objReader->setReadFilter( new MyReadFilter() ); +$objPHPExcel = $objReader->load("06largescale.xlsx"); + +echo date('H:i:s') , " Remove unnecessary rows" , EOL; +$objPHPExcel->getActiveSheet()->removeRow(2, 18); + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php b/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php new file mode 100644 index 00000000000..7a3424e2088 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php @@ -0,0 +1,83 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + +// Generate an image +echo date('H:i:s') , " Generate an image" , EOL; +$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); +$textColor = imagecolorallocate($gdImage, 255, 255, 255); +imagestring($gdImage, 1, 5, 5, 'Created with PHPExcel', $textColor); + +// Add a drawing to the worksheet +echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; +$objDrawing = new PHPExcel_Worksheet_MemoryDrawing(); +$objDrawing->setName('Sample image'); +$objDrawing->setDescription('Sample image'); +$objDrawing->setImageResource($gdImage); +$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); +$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT); +$objDrawing->setHeight(36); +$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php b/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php new file mode 100644 index 00000000000..ad0b400594e --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php @@ -0,0 +1,122 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Change these values to select the PDF Rendering library that you wish to use +// and its directory location on your server +//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF; +//$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF; +$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +//$rendererLibrary = 'mPDF5.4'; +$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + + +// Read from Excel2007 (.xlsx) template +echo date('H:i:s') , " Load Excel2007 template file" , EOL; +$objReader = PHPExcel_IOFactory::createReader('Excel2007'); +$objPHPExcel = $objReader->load("templates/26template.xlsx"); + +/** at this point, we could do some manipulations with the template, but we skip this step */ + +// Export to Excel2007 (.xlsx) +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Export to Excel5 (.xls) +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Export to HTML (.html) +echo date('H:i:s') , " Write to HTML format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); +$objWriter->save(str_replace('.php', '.htm', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Export to PDF (.pdf) +echo date('H:i:s') , " Write to PDF format" , EOL; +try { + if (!PHPExcel_Settings::setPdfRenderer( + $rendererName, + $rendererLibraryPath + )) { + echo ( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' . + EOL + ); + } else { + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); + $objWriter->save(str_replace('.php', '.pdf', __FILE__)); + echo date('H:i:s') , " File written to " , str_replace('.php', '.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + } +} catch (Exception $e) { + echo date('H:i:s') , ' EXCEPTION: ', $e->getMessage() , EOL; +} + +// Remove first two rows with field headers before exporting to CSV +echo date('H:i:s') , " Removing first two heading rows for CSV export" , EOL; +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->removeRow(1, 2); + +// Export to CSV (.csv) +echo date('H:i:s') , " Write to CSV format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); +$objWriter->save(str_replace('.php', '.csv', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Export to CSV with BOM (.csv) +echo date('H:i:s') , " Write to CSV format (with BOM)" , EOL; +$objWriter->setUseBOM(true); +$objWriter->save(str_replace('.php', '-bom.csv', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '-bom.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php new file mode 100644 index 00000000000..17db771c3b4 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php @@ -0,0 +1,64 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Read from Excel5 (.xls) template +echo date('H:i:s') , " Load Excel2007 template file" , EOL; +$objReader = PHPExcel_IOFactory::createReader('Excel5'); +$objPHPExcel = $objReader->load("templates/27template.xls"); + +// Export to Excel2007 (.xlsx) +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Export to Excel5 (.xls) +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php b/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php new file mode 100644 index 00000000000..3e1e681de37 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php @@ -0,0 +1,68 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + +if (!file_exists("05featuredemo.xlsx")) { + exit("Please run 05featuredemo.php first." . EOL); +} + +echo date('H:i:s') , " Load from Excel2007 file" , EOL; +$objReader = PHPExcel_IOFactory::createReader('Excel2007'); +$objPHPExcel = $objReader->load("05featuredemo.xlsx"); + +echo date('H:i:s') , " Iterate worksheets" , EOL; +foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + echo 'Worksheet - ' , $worksheet->getTitle() , EOL; + + foreach ($worksheet->getRowIterator() as $row) { + echo ' Row number - ' , $row->getRowIndex() , EOL; + + $cellIterator = $row->getCellIterator(); + $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set + foreach ($cellIterator as $cell) { + if (!is_null($cell)) { + echo ' Cell - ' , $cell->getCoordinate() , ' - ' , $cell->getCalculatedValue() , EOL; + } + } + } +} + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php b/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php new file mode 100644 index 00000000000..bb387f9cd1d --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php @@ -0,0 +1,183 @@ +'); + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Set timezone +echo date('H:i:s') , " Set timezone" , EOL; +date_default_timezone_set('UTC'); + +// Set value binder +echo date('H:i:s') , " Set value binder" , EOL; +PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() ); + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") + ->setKeywords("office 2007 openxml php") + ->setCategory("Test result file"); + +// Set default font +echo date('H:i:s') , " Set default font" , EOL; +$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial'); +$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10); + +// Set column widths +echo date('H:i:s') , " Set column widths" , EOL; +$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); +$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(14); + +// Add some data, resembling some different data types +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String value:') + ->setCellValue('B1', 'Mark Baker'); + +$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Numeric value #1:') + ->setCellValue('B2', 12345); + +$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Numeric value #2:') + ->setCellValue('B3', -12.345); + +$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Numeric value #3:') + ->setCellValue('B4', .12345); + +$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Numeric value #4:') + ->setCellValue('B5', '12345'); + +$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Numeric value #5:') + ->setCellValue('B6', '1.2345'); + +$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Numeric value #6:') + ->setCellValue('B7', '.12345'); + +$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Numeric value #7:') + ->setCellValue('B8', '1.234e-5'); + +$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Numeric value #8:') + ->setCellValue('B9', '-1.234e+5'); + +$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Boolean value:') + ->setCellValue('B10', 'TRUE'); + +$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Percentage value #1:') + ->setCellValue('B11', '10%'); + +$objPHPExcel->getActiveSheet()->setCellValue('A12', 'Percentage value #2:') + ->setCellValue('B12', '12.5%'); + +$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Fraction value #1:') + ->setCellValue('B13', '-1/2'); + +$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Fraction value #2:') + ->setCellValue('B14', '3 1/2'); + +$objPHPExcel->getActiveSheet()->setCellValue('A15', 'Fraction value #3:') + ->setCellValue('B15', '-12 3/4'); + +$objPHPExcel->getActiveSheet()->setCellValue('A16', 'Fraction value #4:') + ->setCellValue('B16', '13/4'); + +$objPHPExcel->getActiveSheet()->setCellValue('A17', 'Currency value #1:') + ->setCellValue('B17', '$12345'); + +$objPHPExcel->getActiveSheet()->setCellValue('A18', 'Currency value #2:') + ->setCellValue('B18', '$12345.67'); + +$objPHPExcel->getActiveSheet()->setCellValue('A19', 'Currency value #3:') + ->setCellValue('B19', '$12,345.67'); + +$objPHPExcel->getActiveSheet()->setCellValue('A20', 'Date value #1:') + ->setCellValue('B20', '21 December 1983'); + +$objPHPExcel->getActiveSheet()->setCellValue('A21', 'Date value #2:') + ->setCellValue('B21', '19-Dec-1960'); + +$objPHPExcel->getActiveSheet()->setCellValue('A22', 'Date value #3:') + ->setCellValue('B22', '07/12/1982'); + +$objPHPExcel->getActiveSheet()->setCellValue('A23', 'Date value #4:') + ->setCellValue('B23', '24-11-1950'); + +$objPHPExcel->getActiveSheet()->setCellValue('A24', 'Date value #5:') + ->setCellValue('B24', '17-Mar'); + +$objPHPExcel->getActiveSheet()->setCellValue('A25', 'Time value #1:') + ->setCellValue('B25', '01:30'); + +$objPHPExcel->getActiveSheet()->setCellValue('A26', 'Time value #2:') + ->setCellValue('B26', '01:30:15'); + +$objPHPExcel->getActiveSheet()->setCellValue('A27', 'Date/Time value:') + ->setCellValue('B27', '19-Dec-1960 01:30'); + +$objPHPExcel->getActiveSheet()->setCellValue('A28', 'Formula:') + ->setCellValue('B28', '=SUM(B2:B9)'); + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Advanced value binder'); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +// Save Excel5 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/30template.php b/htdocs/includes/phpoffice/phpexcel/Examples/30template.php new file mode 100644 index 00000000000..2b66c2ceb41 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/30template.php @@ -0,0 +1,91 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** PHPExcel_IOFactory */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; + + + +echo date('H:i:s') , " Load from Excel5 template" , EOL; +$objReader = PHPExcel_IOFactory::createReader('Excel5'); +$objPHPExcel = $objReader->load("templates/30template.xls"); + + + + +echo date('H:i:s') , " Add new data to the template" , EOL; +$data = array(array('title' => 'Excel for dummies', + 'price' => 17.99, + 'quantity' => 2 + ), + array('title' => 'PHP for dummies', + 'price' => 15.99, + 'quantity' => 1 + ), + array('title' => 'Inside OOP', + 'price' => 12.95, + 'quantity' => 1 + ) + ); + +$objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel(time())); + +$baseRow = 5; +foreach($data as $r => $dataRow) { + $row = $baseRow + $r; + $objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1); + + $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $r+1) + ->setCellValue('B'.$row, $dataRow['title']) + ->setCellValue('C'.$row, $dataRow['price']) + ->setCellValue('D'.$row, $dataRow['quantity']) + ->setCellValue('E'.$row, '=C'.$row.'*D'.$row); +} +$objPHPExcel->getActiveSheet()->removeRow($baseRow-1,1); + + +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php new file mode 100644 index 00000000000..f3ad0a4bdb7 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php @@ -0,0 +1,119 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$inputFileType = 'Excel5'; +$inputFileName = 'templates/31docproperties.xls'; + + +echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType); +$objPHPExcel = $objPHPExcelReader->load($inputFileName); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Adjust properties" , EOL; +$objPHPExcel->getProperties()->setTitle("Office 95 XLS Test Document") + ->setSubject("Office 95 XLS Test Document") + ->setDescription("Test XLS document, generated using PHPExcel") + ->setKeywords("office 95 biff php"); + + +// Save Excel 95 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; + + +echo EOL; +// Reread File +echo date('H:i:s') , " Reread Excel5 file" , EOL; +$objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__)); + +// Set properties +echo date('H:i:s') , " Get properties" , EOL; + +echo 'Core Properties:' , EOL; +echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL; +echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' , + date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL; +echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL; +echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' , + date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL; +echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL; +echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL; +echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL; +echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL; + + +echo 'Extended (Application) Properties:' , EOL; +echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL; +echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL; +echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL; + + +echo 'Custom Properties:' , EOL; +$customProperties = $objPHPExcel->getProperties()->getCustomProperties(); +foreach($customProperties as $customProperty) { + $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty); + $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty); + echo ' ' , $customProperty , ' - (' , $propertyType , ') - '; + if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) { + echo date('d-M-Y H:i:s',$propertyValue) , EOL; + } elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) { + echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL; + } else { + echo $propertyValue , EOL; + } +} + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php new file mode 100644 index 00000000000..3f5328c5ec3 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php @@ -0,0 +1,119 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$inputFileType = 'Excel2007'; +$inputFileName = 'templates/31docproperties.xlsx'; + + +echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL; +$callStartTime = microtime(true); + +$objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType); +$objPHPExcel = $objPHPExcelReader->load($inputFileName); + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +echo date('H:i:s') , " Adjust properties" , EOL; +$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document") + ->setSubject("Office 2007 XLSX Test Document") + ->setDescription("Test XLSX document, generated using PHPExcel") + ->setKeywords("office 2007 openxml php"); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; + + +echo EOL; +// Reread File +echo date('H:i:s') , " Reread Excel2007 file" , EOL; +$objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__)); + +// Set properties +echo date('H:i:s') , " Get properties" , EOL; + +echo 'Core Properties:' , EOL; +echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL; +echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' , + date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL; +echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL; +echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' , + date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL; +echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL; +echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL; +echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL; +echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL; + + +echo 'Extended (Application) Properties:' , EOL; +echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL; +echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL; +echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL; + + +echo 'Custom Properties:' , EOL; +$customProperties = $objPHPExcel->getProperties()->getCustomProperties(); +foreach($customProperties as $customProperty) { + $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty); + $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty); + echo ' ' , $customProperty , ' - (' , $propertyType , ') - '; + if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) { + echo date('d-M-Y H:i:s',$propertyValue) , EOL; + } elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) { + echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL; + } else { + echo $propertyValue , EOL; + } +} + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php b/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php new file mode 100644 index 00000000000..be1925a5b4f --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php @@ -0,0 +1,131 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** Include path **/ +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); + +/** PHPExcel_IOFactory */ +include 'PHPExcel/IOFactory.php'; + +$inputFileType = 'Excel2007'; +$inputFileNames = 'templates/32readwrite*[0-9].xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = array(); + for($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; + continue; + } + + echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; + + $objReader = PHPExcel_IOFactory::createReader($inputFileType); + $objReader->setIncludeCharts(TRUE); + $objPHPExcel = $objReader->load($inputFileName); + + + echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; + foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ' , $sheetName , EOL; + + $chartNames = $worksheet->getChartNames(); + if(empty($chartNames)) { + echo ' There are no charts in this worksheet' , EOL; + } else { + natsort($chartNames); + foreach($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ' , $chartName , ' - ' , $caption , EOL; + echo str_repeat(' ',strlen($chartName)+3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ' , $chartType , EOL; + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ' , $chartType , EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented' , EOL; + } else { + echo ' Combination Chart' , EOL; + } + } + } + } + } + + + $outputFileName = basename($inputFileName); + + echo date('H:i:s') , " Write Tests to Excel2007 file " , EOL; + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); + $objWriter->setIncludeCharts(TRUE); + $objWriter->save($outputFileName); + echo date('H:i:s') , " File written to " , $outputFileName , EOL; + + $objPHPExcel->disconnectWorksheets(); + unset($objPHPExcel); +} + +// Echo memory peak usage +echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php new file mode 100644 index 00000000000..52ee36b96b9 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php @@ -0,0 +1,142 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php new file mode 100644 index 00000000000..755fa78ee87 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php @@ -0,0 +1,145 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STACKED, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a horizontal bar rather than a vertical column graph +$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php new file mode 100644 index 00000000000..84f8cf78c43 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php @@ -0,0 +1,145 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a horizontal bar rather than a vertical column graph +$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Bar Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php new file mode 100644 index 00000000000..1d8d689bcdb --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php @@ -0,0 +1,154 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', '', 'Budget', 'Forecast', 'Actual'), + array('2010', 'Q1', 47, 44, 43 ), + array('', 'Q2', 56, 53, 50 ), + array('', 'Q3', 52, 46, 45 ), + array('', 'Q4', 45, 40, 40 ), + array('2011', 'Q1', 51, 42, 46 ), + array('', 'Q2', 53, 58, 56 ), + array('', 'Q3', 64, 66, 69 ), + array('', 'Q4', 54, 55, 56 ), + array('2012', 'Q1', 49, 52, 58 ), + array('', 'Q2', 68, 73, 86 ), + array('', 'Q3', 72, 78, 0 ), + array('', 'Q4', 50, 60, 0 ), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 'Budget' + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 'Forecast' + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), // 'Actual' +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$B$13', NULL, 12), // Q1 to Q4 for 2010 to 2012 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', NULL, 12), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_BOTTOM, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Grouped Column Chart'); +$xAxisLabel = new PHPExcel_Chart_Title('Financial Period'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + $xAxisLabel, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('G2'); +$chart->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php new file mode 100644 index 00000000000..eb3d7e21119 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php @@ -0,0 +1,145 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Column Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php new file mode 100644 index 00000000000..0b512f09d4c --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php @@ -0,0 +1,203 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 'Rainfall (mm)', 'Temperature (°F)', 'Humidity (%)'), + array('Jan', 78, 52, 61), + array('Feb', 64, 54, 62), + array('Mar', 62, 57, 63), + array('Apr', 21, 62, 59), + array('May', 11, 75, 60), + array('Jun', 1, 75, 57), + array('Jul', 1, 79, 56), + array('Aug', 1, 79, 59), + array('Sep', 10, 75, 60), + array('Oct', 40, 68, 63), + array('Nov', 69, 62, 64), + array('Dec', 89, 57, 66), + ) +); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels1 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // Temperature +); +$dataseriesLabels2 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // Rainfall +); +$dataseriesLabels3 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // Humidity +); + +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec +); + + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', NULL, 12), +); + +// Build the dataseries +$series1 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues1)-1), // plotOrder + $dataseriesLabels1, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues1 // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series1->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL); + + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), +); + +// Build the dataseries +$series2 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2)-1), // plotOrder + $dataseriesLabels2, // plotLabel + NULL, // plotCategory + $dataSeriesValues2 // plotValues +); + + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues3 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), +); + +// Build the dataseries +$series3 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2)-1), // plotOrder + $dataseriesLabels3, // plotLabel + NULL, // plotCategory + $dataSeriesValues3 // plotValues +); + + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series1, $series2, $series3)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Average Weather Chart for Crete'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + NULL // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('F2'); +$chart->setBottomRightPosition('O16'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php new file mode 100644 index 00000000000..dce75e06bbf --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php @@ -0,0 +1,142 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STACKED, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Stacked Line Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php new file mode 100644 index 00000000000..7da2fa289a9 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php @@ -0,0 +1,220 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels1 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues1 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series1 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping + range(0, count($dataSeriesValues1)-1), // plotOrder + $dataseriesLabels1, // plotLabel + $xAxisTickValues1, // plotCategory + $dataSeriesValues1 // plotValues +); + +// Set the series in the plot area +$plotarea1 = new PHPExcel_Chart_PlotArea(NULL, array($series1)); +// Set the chart legend +$legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false); + +$title1 = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart'); +$yAxisLabel1 = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart1 = new PHPExcel_Chart( + 'chart1', // name + $title1, // title + $legend1, // legend + $plotarea1, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel1 // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart1->setTopLeftPosition('A7'); +$chart1->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart1); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels2 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues2 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series2 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2)-1), // plotOrder + $dataseriesLabels2, // plotLabel + $xAxisTickValues2, // plotCategory + $dataSeriesValues2 // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series2->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotarea2 = new PHPExcel_Chart_PlotArea(NULL, array($series2)); +// Set the chart legend +$legend2 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title2 = new PHPExcel_Chart_Title('Test Column Chart'); +$yAxisLabel2 = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart2 = new PHPExcel_Chart( + 'chart2', // name + $title2, // title + $legend2, // legend + $plotarea2, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel2 // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart2->setTopLeftPosition('I7'); +$chart2->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart2); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php new file mode 100644 index 00000000000..1a4f1df4a25 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php @@ -0,0 +1,215 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels1 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues1 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), +); + +// Build the dataseries +$series1 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_PIECHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues1)-1), // plotOrder + $dataseriesLabels1, // plotLabel + $xAxisTickValues1, // plotCategory + $dataSeriesValues1 // plotValues +); + +// Set up a layout object for the Pie chart +$layout1 = new PHPExcel_Chart_Layout(); +$layout1->setShowVal(TRUE); +$layout1->setShowPercent(TRUE); + +// Set the series in the plot area +$plotarea1 = new PHPExcel_Chart_PlotArea($layout1, array($series1)); +// Set the chart legend +$legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title1 = new PHPExcel_Chart_Title('Test Pie Chart'); + + +// Create the chart +$chart1 = new PHPExcel_Chart( + 'chart1', // name + $title1, // title + $legend1, // legend + $plotarea1, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + NULL // yAxisLabel - Pie charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart1->setTopLeftPosition('A7'); +$chart1->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart1); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels2 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues2 = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), +); + +// Build the dataseries +$series2 = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_DONUTCHART, // plotType + PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2)-1), // plotOrder + $dataseriesLabels2, // plotLabel + $xAxisTickValues2, // plotCategory + $dataSeriesValues2 // plotValues +); + +// Set up a layout object for the Pie chart +$layout2 = new PHPExcel_Chart_Layout(); +$layout2->setShowVal(TRUE); +$layout2->setShowCatName(TRUE); + +// Set the series in the plot area +$plotarea2 = new PHPExcel_Chart_PlotArea($layout2, array($series2)); + +$title2 = new PHPExcel_Chart_Title('Test Donut Chart'); + + +// Create the chart +$chart2 = new PHPExcel_Chart( + 'chart2', // name + $title2, // title + NULL, // legend + $plotarea2, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + NULL // yAxisLabel - Like Pie charts, Donut charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart2->setTopLeftPosition('I7'); +$chart2->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart2); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php new file mode 100644 index 00000000000..29fb2200ff5 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php @@ -0,0 +1,154 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Jan', 47, 45, 71), + array('Feb', 56, 73, 86), + array('Mar', 52, 61, 69), + array('Apr', 40, 52, 60), + array('May', 42, 55, 71), + array('Jun', 58, 63, 76), + array('Jul', 53, 61, 89), + array('Aug', 46, 69, 85), + array('Sep', 62, 75, 81), + array('Oct', 51, 70, 96), + array('Nov', 55, 66, 89), + array('Dec', 68, 62, 0), + ) +); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_RADARCHART, // plotType + NULL, // plotGrouping + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues, // plotValues + NULL, // smooth line + PHPExcel_Chart_DataSeries::STYLE_MARKER // plotStyle +); + +// Set up a layout object for the Pie chart +$layout = new PHPExcel_Chart_Layout(); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea($layout, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Radar Chart'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + NULL // yAxisLabel - Radar charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('F2'); +$chart->setBottomRightPosition('M15'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php new file mode 100644 index 00000000000..53851ad46c0 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php @@ -0,0 +1,138 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('', 2010, 2011, 2012), + array('Q1', 12, 15, 21), + array('Q2', 56, 73, 86), + array('Q3', 52, 61, 69), + array('Q4', 30, 32, 0), + ) +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 +); +// Set the X-Axis Labels +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART, // plotType + NULL, // plotGrouping (Scatter charts don't have any grouping) + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues, // plotValues + NULL, // smooth line + PHPExcel_Chart_DataSeries::STYLE_LINEMARKER // plotStyle +); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Scatter Chart'); +$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)'); + + +// Create the chart +$chart = new PHPExcel_Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + NULL, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php new file mode 100644 index 00000000000..dfc8d5cdd97 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php @@ -0,0 +1,151 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +$objPHPExcel = new PHPExcel(); +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array('Counts', 'Max', 'Min', 'Min Threshold', 'Max Threshold' ), + array(10, 10, 5, 0, 50 ), + array(30, 20, 10, 0, 50 ), + array(20, 30, 15, 0, 50 ), + array(40, 10, 0, 0, 50 ), + array(100, 40, 5, 0, 50 ), + ), null, 'A1', true +); +$objWorksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); + + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataseriesLabels = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), //Max / Open + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), //Min / Close + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), //Min Threshold / Min + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), //Max Threshold / Max +); +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = array( + new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$6', NULL, 5), // Counts +); +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = array( + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', NULL, 5), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', NULL, 5), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', NULL, 5), + new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', NULL, 5), +); + +// Build the dataseries +$series = new PHPExcel_Chart_DataSeries( + PHPExcel_Chart_DataSeries::TYPE_STOCKCHART, // plotType + null, // plotGrouping - if we set this to not null, then xlsx throws error + range(0, count($dataSeriesValues)-1), // plotOrder + $dataseriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series)); +// Set the chart legend +$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); + +$title = new PHPExcel_Chart_Title('Test Stock Chart'); +$xAxisLabel = new PHPExcel_Chart_Title('Counts'); +$yAxisLabel = new PHPExcel_Chart_Title('Values'); + +// Create the chart +$chart = new PHPExcel_Chart( + 'stock-chart', // name + $title, // title + $legend, // legend + $plotarea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + $xAxisLabel, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$objWorksheet->addChart($chart); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$filename = str_replace('.php', '.xlsx', __FILE__); +if(file_exists($filename)) { + unlink($filename); +} +$objWriter->save($filename); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php b/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php new file mode 100644 index 00000000000..84f8a922174 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php @@ -0,0 +1,78 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** PHPExcel */ +include '../Classes/PHPExcel.php'; + +if (!file_exists("33chartcreate-bar.xlsx")) { + exit("Please run 33chartcreate-bar.php first." . EOL); +} + +echo date('H:i:s') , " Load from Excel2007 file" , EOL; +$objReader = PHPExcel_IOFactory::createReader("Excel2007"); +$objReader->setIncludeCharts(TRUE); +$objPHPExcel = $objReader->load("33chartcreate-bar.xlsx"); + + +echo date('H:i:s') , " Update cell data values that are displayed in the chart" , EOL; +$objWorksheet = $objPHPExcel->getActiveSheet(); +$objWorksheet->fromArray( + array( + array(50-12, 50-15, 50-21), + array(50-56, 50-73, 50-86), + array(50-52, 50-61, 50-69), + array(50-30, 50-32, 50), + ), + NULL, + 'B2' +); + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->setIncludeCharts(TRUE); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php b/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php new file mode 100644 index 00000000000..710cddb49a5 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php @@ -0,0 +1,134 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** Include path **/ +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); + +/** PHPExcel_IOFactory */ +include 'PHPExcel/IOFactory.php'; + + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + + +if (!PHPExcel_Settings::setChartRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +$inputFileType = 'Excel2007'; +$inputFileNames = 'templates/32readwrite*[0-9].xlsx'; + + if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = array(); + for($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; + continue; + } + + echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; + + $objReader = PHPExcel_IOFactory::createReader($inputFileType); + $objReader->setIncludeCharts(TRUE); + $objPHPExcel = $objReader->load($inputFileName); + + + echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; + foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ' , $sheetName , EOL; + + $chartNames = $worksheet->getChartNames(); + if(empty($chartNames)) { + echo ' There are no charts in this worksheet' , EOL; + } else { + natsort($chartNames); + foreach($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ' , $chartName , ' - ' , $caption , EOL; + echo str_repeat(' ',strlen($chartName)+3); + + $jpegFile = '35'.str_replace('.xlsx', '.jpg', substr($inputFileNameShort,2)); + if (file_exists($jpegFile)) { + unlink($jpegFile); + } + try { + $chart->render($jpegFile); + } catch (Exception $e) { + echo 'Error rendering chart: ',$e->getMessage(); + } + } + } + } + + + $objPHPExcel->disconnectWorksheets(); + unset($objPHPExcel); +} + +// Echo memory peak usage +echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done rendering charts as images" , EOL; +echo 'Image files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php new file mode 100644 index 00000000000..b4bae11cba2 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php @@ -0,0 +1,151 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** Include path **/ +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); + +/** PHPExcel_IOFactory */ +include 'PHPExcel/IOFactory.php'; + + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + + +if (!PHPExcel_Settings::setChartRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +$inputFileType = 'Excel2007'; +$inputFileNames = 'templates/36write*.xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = array(); + for($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; + continue; + } + + echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; + + $objReader = PHPExcel_IOFactory::createReader($inputFileType); + $objReader->setIncludeCharts(TRUE); + $objPHPExcel = $objReader->load($inputFileName); + + + echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; + foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ' , $sheetName , EOL; + + $chartNames = $worksheet->getChartNames(); + if(empty($chartNames)) { + echo ' There are no charts in this worksheet' , EOL; + } else { + natsort($chartNames); + foreach($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ' , $chartName , ' - ' , $caption , EOL; + echo str_repeat(' ',strlen($chartName)+3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ' , $chartType , EOL; + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ' , $chartType , EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented' , EOL; + } else { + echo ' Combination Chart' , EOL; + } + } + } + } + } + + + $outputFileName = str_replace('.xlsx', '.html', basename($inputFileName)); + + echo date('H:i:s') , " Write Tests to HTML file " , EOL; + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); + $objWriter->setIncludeCharts(TRUE); + $objWriter->save($outputFileName); + echo date('H:i:s') , " File written to " , $outputFileName , EOL; + + $objPHPExcel->disconnectWorksheets(); + unset($objPHPExcel); +} + +// Echo memory peak usage +echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php new file mode 100644 index 00000000000..10d62cd04ba --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php @@ -0,0 +1,174 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** + * PHPExcel + * + * Copyright (C) 2006 - 2014 PHPExcel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category PHPExcel + * @package PHPExcel + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @version ##VERSION##, ##DATE## + */ + +/** Include path **/ +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); + +/** PHPExcel_IOFactory */ +include 'PHPExcel/IOFactory.php'; + + +// Change these values to select the Rendering library that you wish to use +// for PDF files, and its directory location on your server +//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF; +$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF; +//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +$rendererLibrary = 'mPDF5.4'; +//$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + + +if (!PHPExcel_Settings::setPdfRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +// Change these values to select the Rendering library that you wish to use +// for Chart images, and its directory location on your server +$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + + +if (!PHPExcel_Settings::setChartRenderer( + $rendererName, + $rendererLibraryPath + )) { + die( + 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . + EOL . + 'at the top of this script as appropriate for your directory structure' + ); +} + + +$inputFileType = 'Excel2007'; +$inputFileNames = 'templates/36write*.xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = array(); + for($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; + continue; + } + + echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; + + $objReader = PHPExcel_IOFactory::createReader($inputFileType); + $objReader->setIncludeCharts(TRUE); + $objPHPExcel = $objReader->load($inputFileName); + + + echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; + foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ' , $sheetName , EOL; + + $chartNames = $worksheet->getChartNames(); + if(empty($chartNames)) { + echo ' There are no charts in this worksheet' , EOL; + } else { + natsort($chartNames); + foreach($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ' , $chartName , ' - ' , $caption , EOL; + echo str_repeat(' ',strlen($chartName)+3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ' , $chartType , EOL; + } else { + $chartTypes = array(); + for($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ' , $chartType , EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented' , EOL; + } else { + echo ' Combination Chart' , EOL; + } + } + } + } + } + + + $outputFileName = str_replace('.xlsx', '.pdf', basename($inputFileName)); + + echo date('H:i:s') , " Write Tests to HTML file " , EOL; + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); + $objWriter->setIncludeCharts(TRUE); + $objWriter->save($outputFileName); + echo date('H:i:s') , " File written to " , $outputFileName , EOL; + + $objPHPExcel->disconnectWorksheets(); + unset($objPHPExcel); +} + +// Echo memory peak usage +echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php b/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php new file mode 100644 index 00000000000..070f512a2a7 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php @@ -0,0 +1,83 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("PHPOffice") + ->setLastModifiedBy("PHPOffice") + ->setTitle("PHPExcel Test Document") + ->setSubject("PHPExcel Test Document") + ->setDescription("Test document for PHPExcel, generated using PHP classes.") + ->setKeywords("Office PHPExcel php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + +// Set the page layout view as page layout +$objPHPExcel->getActiveSheet()->getSheetView()->setView(PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT); + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +// Save Excel5 file +echo date('H:i:s') , " Write to Excel5 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'Files have been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php b/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php new file mode 100644 index 00000000000..901b887eeb9 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php @@ -0,0 +1,118 @@ +'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + + +// Create new PHPExcel object +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); + +// Set document properties +echo date('H:i:s') , " Set document properties" , EOL; +$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") + ->setLastModifiedBy("Maarten Balliauw") + ->setTitle("PHPExcel Test Document") + ->setSubject("PHPExcel Test Document") + ->setDescription("Test document for PHPExcel, generated using PHP classes.") + ->setKeywords("office PHPExcel php") + ->setCategory("Test result file"); + + +// Add some data +echo date('H:i:s') , " Add some data" , EOL; +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$objPHPExcel->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + + +$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); +$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); +$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); + + +// Rename worksheet +echo date('H:i:s') , " Rename worksheet" , EOL; +$objPHPExcel->getActiveSheet()->setTitle('Simple'); + + +// Clone worksheet +echo date('H:i:s') , " Clone worksheet" , EOL; +$clonedSheet = clone $objPHPExcel->getActiveSheet(); +$clonedSheet + ->setCellValue('A1', 'Goodbye') + ->setCellValue('A2', 'cruel') + ->setCellValue('C1', 'Goodbye') + ->setCellValue('C2', 'cruel'); + +// Rename cloned worksheet +echo date('H:i:s') , " Rename cloned worksheet" , EOL; +$clonedSheet->setTitle('Simple Clone'); +$objPHPExcel->addSheet($clonedSheet); + + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$objPHPExcel->setActiveSheetIndex(0); + + +// Save Excel 2007 file +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$callStartTime = microtime(true); + +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; + +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; +echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +// Echo done +echo date('H:i:s') , " Done writing files" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php b/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php new file mode 100644 index 00000000000..be31951a492 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php @@ -0,0 +1,51 @@ +'); + +date_default_timezone_set('Europe/London'); + +/** Include PHPExcel */ +require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; + +echo date('H:i:s') , " Create new PHPExcel object" , EOL; +$objPHPExcel = new PHPExcel(); +$worksheet = $objPHPExcel->getActiveSheet(); + +echo date('H:i:s') , " Create styles array" , EOL; +$styles = array(); +for ($i = 0; $i < 10; $i++) { + $style = new PHPExcel_Style(); + $style->getFont()->setSize($i + 4); + $styles[] = $style; +} + +echo date('H:i:s') , " Add data (begin)" , EOL; +$t = microtime(true); +for ($col = 0; $col < 50; $col++) { + for ($row = 0; $row < 100; $row++) { + $str = ($row + $col); + $style = $styles[$row % 10]; + $coord = PHPExcel_Cell::stringFromColumnIndex($col) . ($row + 1); + $worksheet->setCellValue($coord, $str); + $worksheet->duplicateStyle($style, $coord); + } +} +$d = microtime(true) - $t; +echo date('H:i:s') , " Add data (end), time: " . round($d, 2) . " s", EOL; + + +echo date('H:i:s') , " Write to Excel2007 format" , EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); +$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; + + +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; + +echo date('H:i:s') , " Done writing file" , EOL; +echo 'File has been created in ' , getcwd() , EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php new file mode 100644 index 00000000000..99d6df80728 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php @@ -0,0 +1,61 @@ +load("Excel2003XMLTest.xml"); + + +$callEndTime = microtime(true); +$callTime = $callEndTime - $callStartTime; +echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; +// Echo memory usage +echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; + + +echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL; +$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); +$objWriter->save(str_replace('.php', '.xls', __FILE__)); +echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL; + + +// Echo memory peak usage +echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; + +// Echo done +echo date('H:i:s') , " Done writing file" , PHP_EOL; diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml new file mode 100644 index 00000000000..fb2d305c379 --- /dev/null +++ b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml @@ -0,0 +1 @@ +3#0000004#0000ff5#0080006#00ccff7#8000808#9933669#c0c0c010#c4751211#ccffcc12#ddbc7d13#ff000014#ff00ff15#ff660016#ff990017#ff99cc18#ffff0090001386024075FalseFalse + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test String 1 + 1 + 5 + A + E + 6 + AE + + + Test - String 2 + 2 + 6 + B + F + 8 + BF + + + Test #3 + 3 + 7 + C + G + 10 + CG + + + Test with (") in string + 4 + 8 + D + H + 12 + DH + + + 10 + 26 + 36 + + + 1.23 + 1 + + + + 2.34 + 0 + + + 3.45 + + + + 1960-12-19T00:00:00.000 + TOP + #N/A + + + 1.5 + #DIV/0! + + + BOTTOM + + + LEFT + + + RIGHT + + + + BOX + + Test Column 1 + + + Test Column 2 + + + Test Column 3 + +
    + + +
    +