diff --git a/.gitignore b/.gitignore index 90be3a9720be0..2ce18fd0cee68 100644 --- a/.gitignore +++ b/.gitignore @@ -150,6 +150,8 @@ Desktop.ini /libraries/vendor/symfony/polyfill-php55/README.md /libraries/vendor/symfony/polyfill-php56/composer.json /libraries/vendor/symfony/polyfill-php56/README.md +/libraries/vendor/symfony/polyfill-php73/composer.json +/libraries/vendor/symfony/polyfill-php73/README.md /libraries/vendor/symfony/polyfill-util/composer.json /libraries/vendor/symfony/polyfill-util/README.md /libraries/vendor/symfony/polyfill-util/TestListener.php diff --git a/administrator/components/com_admin/postinstall/updatedefaultsettings.php b/administrator/components/com_admin/postinstall/updatedefaultsettings.php new file mode 100644 index 0000000000000..d111f4d50c799 --- /dev/null +++ b/administrator/components/com_admin/postinstall/updatedefaultsettings.php @@ -0,0 +1,27 @@ +clear() ->update($db->quoteName('#__finder_terms', 't')) - ->join('INNER', $db->quoteName('#__finder_links_terms' . dechex($i), 'm') . ' ON m.term_id = t.term_id') - ->set('t.links = t.links - 1') + ->join('INNER', $db->quoteName('#__finder_links_terms' . dechex($i), 'm') . + ' ON ' . $db->quoteName('m.term_id') . ' = ' . $db->quoteName('t.term_id') + ) + ->set($db->quoteName('links') . ' = ' . $db->quoteName('links') . ' - 1') ->where($db->quoteName('m.link_id') . ' = ' . (int) $linkId); $db->setQuery($query)->execute(); diff --git a/administrator/components/com_media/views/images/tmpl/default.php b/administrator/components/com_media/views/images/tmpl/default.php index 1e2dd7a602cea..4baf462ad6479 100644 --- a/administrator/components/com_media/views/images/tmpl/default.php +++ b/administrator/components/com_media/views/images/tmpl/default.php @@ -91,7 +91,7 @@ - +
diff --git a/administrator/components/com_media/views/imageslist/tmpl/default_folder.php b/administrator/components/com_media/views/imageslist/tmpl/default_folder.php index e3e503a054b00..c7acd2bfed2be 100644 --- a/administrator/components/com_media/views/imageslist/tmpl/default_folder.php +++ b/administrator/components/com_media/views/imageslist/tmpl/default_folder.php @@ -12,12 +12,12 @@ $input = JFactory::getApplication()->input; ?>
  • - +
    - _tmp_folder->name, 10, false); ?> + escape($this->_tmp_folder->name), 10, false); ?>
  • diff --git a/administrator/components/com_media/views/imageslist/tmpl/default_image.php b/administrator/components/com_media/views/imageslist/tmpl/default_image.php index 06dec4b41d7f6..543c003fd8cd2 100644 --- a/administrator/components/com_media/views/imageslist/tmpl/default_image.php +++ b/administrator/components/com_media/views/imageslist/tmpl/default_image.php @@ -17,12 +17,12 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->escape($this->_tmp_img->title), JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/administrator/components/com_media/views/media/tmpl/default.php b/administrator/components/com_media/views/media/tmpl/default.php index 800cdd9e73620..bc1488dd82779 100644 --- a/administrator/components/com_media/views/media/tmpl/default.php +++ b/administrator/components/com_media/views/media/tmpl/default.php @@ -77,7 +77,7 @@
    - +
    authorise('core.create', 'com_media')) : ?> @@ -94,7 +94,7 @@

    - + set('com_media.return_url', 'index.php?option=com_media'); ?>
    @@ -104,7 +104,7 @@
    - +
    @@ -115,7 +115,7 @@
    - +
    diff --git a/administrator/components/com_media/views/media/tmpl/default_folders.php b/administrator/components/com_media/views/media/tmpl/default_folders.php index 1d10cdf07cc3c..9bf6e6b91b96e 100644 --- a/administrator/components/com_media/views/media/tmpl/default_folders.php +++ b/administrator/components/com_media/views/media/tmpl/default_folders.php @@ -19,9 +19,9 @@ // Get a sanitised name for the target $target = str_replace('/', '-', $folder['data']->relative); ?>
  • - + - name; ?> + escape($folder['data']->name); ?> getFolderLevel($folder); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/details.php b/administrator/components/com_media/views/medialist/tmpl/details.php index 1c5d498db897f..716751309c475 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details.php +++ b/administrator/components/com_media/views/medialist/tmpl/details.php @@ -81,13 +81,13 @@ " ); ?> - +

    get($path, 'images'), - ($this->state->folder != '') ? '/' . $this->state->folder : ''; + ($this->escape($this->state->folder) != '') ? '/' . $this->escape($this->state->folder) : ''; ?>

    diff --git a/administrator/components/com_media/views/medialist/tmpl/details_doc.php b/administrator/components/com_media/views/medialist/tmpl/details_doc.php index 9dda134d5ba70..51d30eee1c50c 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_doc.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_doc.php @@ -20,11 +20,11 @@ - - _tmp_doc->icon_16, $this->_tmp_doc->title, null, true, true) ? JHtml::_('image', $this->_tmp_doc->icon_16, $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true);?> + + _tmp_doc->icon_16, $this->escape($this->_tmp_doc->title), null, true, true) ? JHtml::_('image', $this->_tmp_doc->icon_16, $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->escape($this->_tmp_doc->title), array('width' => 16, 'height' => 16), true);?> - - _tmp_doc->title; ?> + + escape($this->_tmp_doc->title); ?>   @@ -34,8 +34,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_docs.php b/administrator/components/com_media/views/medialist/tmpl/details_docs.php index ad13877202b17..83ef738833736 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_docs.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_docs.php @@ -21,18 +21,18 @@ canDelete) : ?> - name, false, 'rm', 'cb-document'); ?> + escape($doc->name), false, 'rm', 'cb-document'); ?> - - icon_16, $doc->title, null, true, true) ? JHtml::_('image', $doc->icon_16, $doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $doc->title, array('width' => 16, 'height' => 16), true); ?> + + icon_16, $this->escape($doc->title), null, true, true) ? JHtml::_('image', $doc->icon_16, $this->escape($doc->title), array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->escape($doc->title), array('width' => 16, 'height' => 16), true); ?> - - title; ?> + + escape($doc->title); ?>   @@ -43,7 +43,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_folder.php b/administrator/components/com_media/views/medialist/tmpl/details_folder.php index 52999c9580161..6514c8e82d512 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_folder.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_folder.php @@ -14,11 +14,11 @@ ?> - + - _tmp_folder->name; ?> + escape($this->_tmp_folder->name); ?>   @@ -28,7 +28,7 @@ authorise('core.delete', 'com_media')):?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_folders.php b/administrator/components/com_media/views/medialist/tmpl/details_folders.php index 078fd93c2aa75..8971eba4073cb 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_folders.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_folders.php @@ -12,11 +12,11 @@ ?> folders as $i => $folder) : ?> - path_relative; ?> + path_relative); ?> canDelete) : ?> - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?> @@ -24,7 +24,7 @@ - name; ?> + escape($folder->name); ?>   @@ -33,7 +33,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_img.php b/administrator/components/com_media/views/medialist/tmpl/details_img.php index 82ef0681e4c45..c4c2090f3203d 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_img.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_img.php @@ -21,10 +21,10 @@ - _tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_16, 'height' => $this->_tmp_img->height_16)); ?> + escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_16, 'height' => $this->_tmp_img->height_16)); ?> - escape($this->_tmp_img->title); ?> + escape($this->_tmp_img->title); ?> _tmp_img->width, $this->_tmp_img->height); ?> @@ -34,8 +34,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_imgs.php b/administrator/components/com_media/views/medialist/tmpl/details_imgs.php index 635fb7efb8551..58ec9a8316750 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_imgs.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_imgs.php @@ -23,18 +23,18 @@ canDelete) : ?> - name, false, 'rm', 'cb-image'); ?> + escape($image->name), false, 'rm', 'cb-image'); ?> - - path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $image->title, JHtml::_('number.bytes', $image->size)), array('width' => $image->width_16, 'height' => $image->height_16)); ?> + + escape($image->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->escape($image->title), JHtml::_('number.bytes', $image->size)), array('width' => $image->width_16, 'height' => $image->height_16)); ?> - + escape($image->title); ?> @@ -49,7 +49,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_up.php b/administrator/components/com_media/views/medialist/tmpl/details_up.php index 27dbe632dcd2c..8e5adb2c5adb0 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_up.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_up.php @@ -17,11 +17,11 @@   - + - .. + ..     diff --git a/administrator/components/com_media/views/medialist/tmpl/details_video.php b/administrator/components/com_media/views/medialist/tmpl/details_video.php index 305ae3077839b..e19ed665b96dd 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_video.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_video.php @@ -29,11 +29,11 @@ - _tmp_video->icon_16, $this->_tmp_video->title, null, true); ?> + _tmp_video->icon_16, $this->escape($this->_tmp_video->title), null, true); ?> - - _tmp_video->name, 10, false); ?> + + escape($this->_tmp_video->name), 10, false); ?> @@ -44,8 +44,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_videos.php b/administrator/components/com_media/views/medialist/tmpl/details_videos.php index 420d7621eb0cf..358dbcc5c3d6e 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_videos.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_videos.php @@ -30,19 +30,19 @@ canDelete) : ?> - name, false, 'rm', 'cb-video'); ?> + escape($video->name), false, 'rm', 'cb-video'); ?> - - icon_16, $video->title, null, true); ?> + + icon_16, $this->escape($video->title), null, true); ?> - - name, 10, false); ?> + + escape($video->name), 10, false); ?> @@ -56,7 +56,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs.php index f1428a664f209..95c88e028fa4b 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs.php @@ -81,13 +81,13 @@ " ); ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php index 22854c73ed844..e9ff7cf7f548a 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php @@ -19,21 +19,21 @@ trigger('onContentBeforeDisplay', array('com_media.file', &$doc, &$params)); ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-document'); ?> + escape($doc->name), false, 'rm', 'cb-document'); ?>
    -
    - name, 10, false); ?> +
    + escape($doc->name), 10, false); ?>
  • trigger('onContentAfterDisplay', array('com_media.file', &$doc, &$params)); ?> diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php index 34e678046a4b1..03483e24eb673 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php @@ -13,22 +13,22 @@ folders as $i => $folder) : ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php index 61ad6807862fb..079137da1cfb7 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php @@ -20,23 +20,23 @@
  • canDelete) : ?> × + href="index.php?option=com_media&task=file.delete&tmpl=index&=1&folder=state->folder); ?>&rm[]=escape($img->name); ?>" + rel="escape($img->name); ?>" title="">×
    - name, false, 'rm', 'cb-image'); ?> + escape($img->name), false, 'rm', 'cb-image'); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php index eec7f167ad902..89c53d0b606f3 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php @@ -13,7 +13,7 @@
  • @@ -21,7 +21,7 @@  
  • - .. + ..
    diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php index 6b9502eb04883..b3b40e249804a 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php @@ -26,20 +26,20 @@ trigger('onContentBeforeDisplay', array('com_media.file', &$video, &$params)); ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-video'); ?> + escape($video->name), false, 'rm', 'cb-video'); ?>
    - icon_32, $video->title, null, true); ?> + icon_32, $this->escape($video->title), null, true); ?>
    - - name, 10, false); ?> + + escape($video->name), 10, false); ?>
  • diff --git a/administrator/components/com_menus/views/item/tmpl/edit.php b/administrator/components/com_menus/views/item/tmpl/edit.php index 789b0d38e9879..604de3a312f73 100644 --- a/administrator/components/com_menus/views/item/tmpl/edit.php +++ b/administrator/components/com_menus/views/item/tmpl/edit.php @@ -164,6 +164,7 @@ if ($this->item->type == 'url') { $this->form->setFieldAttribute('link', 'readonly', 'false'); + $this->form->setFieldAttribute('link', 'required', 'true'); } echo $this->form->renderField('link'); diff --git a/administrator/components/com_users/controllers/level.php b/administrator/components/com_users/controllers/level.php index 7f1fb6a48c70f..e5a518d1e5782 100644 --- a/administrator/components/com_users/controllers/level.php +++ b/administrator/components/com_users/controllers/level.php @@ -41,6 +41,47 @@ protected function allowSave($data, $key = 'id') return (JFactory::getUser()->authorise('core.admin', $this->option) && parent::allowSave($data, $key)); } + /** + * Overrides JControllerForm::allowEdit + * + * Checks that non-Super Admins are not editing Super Admins. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 3.8.8 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Get user instance + $user = JFactory::getUser(); + + // Check for if Super Admin can edit + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__viewlevels')) + ->where($db->quoteName('id') . ' = ' . (int) $data['id']); + $db->setQuery($query); + + $viewlevel = $db->loadAssoc(); + + // Decode level groups + $groups = json_decode($viewlevel['rules']); + + // If this group is super admin and this user is not super admin, canEdit is false + if (!$user->authorise('core.admin') && JAccess::checkGroup($groups[0], 'core.admin')) + { + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_EDIT_NOT_PERMITTED')); + + return false; + } + + return parent::allowEdit($data, $key); + } + /** * Removes an item. * diff --git a/administrator/components/com_users/models/level.php b/administrator/components/com_users/models/level.php index 5bcdb8860e6bf..3a0f763a0ff85 100644 --- a/administrator/components/com_users/models/level.php +++ b/administrator/components/com_users/models/level.php @@ -9,12 +9,20 @@ defined('_JEXEC') or die; + +use Joomla\CMS\Access\Access; +use Joomla\CMS\Factory; +use Joomla\CMS\Helper\UserGroupsHelper; +use Joomla\CMS\Language\Text; +use Joomla\CMS\MVC\Model\AdminModel; +use Joomla\Utilities\ArrayHelper; + /** * User view level model. * * @since 1.6 */ -class UsersModelLevel extends JModelAdmin +class UsersModelLevel extends AdminModel { /** * @var array A list of the access levels in use. @@ -217,4 +225,65 @@ public function save($data) return parent::save($data); } + + /** + * Method to validate the form data. + * + * @param \JForm $form The form to validate against. + * @param array $data The data to validate. + * @param string $group The name of the field group to validate. + * + * @return array|boolean Array of filtered data if valid, false otherwise. + * + * @see \JFormRule + * @see \JFilterInput + * @since 3.8.8 + */ + public function validate($form, $data, $group = null) + { + $isSuperAdmin = Factory::getUser()->authorise('core.admin'); + + // Non Super user should not be able to change the access levels of super user groups + if (!$isSuperAdmin) + { + if (!isset($data['rules']) || !is_array($data['rules'])) + { + $data['rules'] = array(); + } + + $groups = array_values(UserGroupsHelper::getInstance()->getAll()); + + $rules = array(); + + if (!empty($data['id'])) + { + $table = $this->getTable(); + + $table->load($data['id']); + + $rules = json_decode($table->rules); + } + + $rules = ArrayHelper::toInteger($rules); + + for ($i = 0, $n = count($groups); $i < $n; ++$i) + { + if (Access::checkGroup((int) $groups[$i]->id, 'core.admin')) + { + if (in_array($groups[$i]->id, $rules) && !in_array($groups[$i]->id, $data['rules'])) + { + $data['rules'][] = (int) $groups[$i]->id; + } + elseif (!in_array($groups[$i]->id, $rules) && in_array($groups[$i]->id, $data['rules'])) + { + $this->setError(Text::_('JLIB_USER_ERROR_NOT_SUPERADMIN')); + + return false; + } + } + } + } + + return parent::validate($form, $data, $group); + } } diff --git a/administrator/components/com_users/views/level/tmpl/edit.php b/administrator/components/com_users/views/level/tmpl/edit.php index 61aec7df4b292..2c081a34c79a9 100644 --- a/administrator/components/com_users/views/level/tmpl/edit.php +++ b/administrator/components/com_users/views/level/tmpl/edit.php @@ -40,7 +40,7 @@
    - item->rules); ?> + item->rules, true); ?>
    diff --git a/administrator/components/com_users/views/levels/tmpl/default.php b/administrator/components/com_users/views/levels/tmpl/default.php index 14b6e6d60bb36..98c69bc613279 100644 --- a/administrator/components/com_users/views/levels/tmpl/default.php +++ b/administrator/components/com_users/views/levels/tmpl/default.php @@ -78,6 +78,16 @@ $canCreate = $user->authorise('core.create', 'com_users'); $canEdit = $user->authorise('core.edit', 'com_users'); $canChange = $user->authorise('core.edit.state', 'com_users'); + + // Decode level groups + $groups = json_decode($item->rules); + + // If this group is super admin and this user is not super admin, $canEdit is false + if (!JFactory::getUser()->authorise('core.admin') && JAccess::checkGroup($groups[0], 'core.admin')) + { + $canEdit = false; + $canChange = false; + } ?> @@ -100,7 +110,9 @@ - id); ?> + + id); ?> + diff --git a/administrator/language/en-GB/en-GB.com_cpanel.ini b/administrator/language/en-GB/en-GB.com_cpanel.ini index 9071156762e0c..febcd3169f6e4 100644 --- a/administrator/language/en-GB/en-GB.com_cpanel.ini +++ b/administrator/language/en-GB/en-GB.com_cpanel.ini @@ -32,6 +32,8 @@ COM_CPANEL_MSG_ROBOTS_TITLE="robots.txt Update" COM_CPANEL_MSG_ROBOTS_BODY="A change to the default robots.txt files was made in Joomla! 3.3 to allow Google to access templates and media files by default to improve SEO. This change is not applied automatically on upgrades and users are recommended to review the changes in the robots.txt.dist file and implement these changes in their own robots.txt file." COM_CPANEL_MSG_STATS_COLLECTION_BODY="

    Since Joomla! 3.5 a statistics plugin will submit anonymous data to the Joomla Project. This will only submit the Joomla version, PHP version, database engine and version, and server operating system.

    This data is collected to ensure that future versions of Joomla can take advantage of the latest database and PHP features without affecting significant numbers of users. The need for this became clear when a minimum of PHP 5.3.10 was required when Joomla! 3.3 implemented the more secure Bcrypt passwords.

    In the interest of full transparency and to help developers this data is publicly available. An API and graphs will show the Joomla version, PHP versions and database engines in use.

    If you do not wish to provide the Joomla Project with this information you can disable the plugin called System - Joomla Statistics.

    " COM_CPANEL_MSG_STATS_COLLECTION_TITLE="Stats Collection in Joomla" +COM_CPANEL_MSG_UPDATEDEFAULTSETTINGS_BODY="

    As part of our security team's review, we have made some changes to the default settings in a new Joomla installation. As these changes are only applied to new installations, we strongly recommend that you review these changes and update your site.

    The changed settings are:

    We have created a dedicated documentation page explaining these changes.

    " +COM_CPANEL_MSG_UPDATEDEFAULTSETTINGS_TITLE="Updated site security recommendations" COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

    Community resources are available for new users.

    " COM_CPANEL_WELCOME_BEGINNERS_TITLE="Welcome to Joomla!" COM_CPANEL_XML_DESCRIPTION="Control Panel component" diff --git a/administrator/templates/isis/css/template-rtl.css b/administrator/templates/isis/css/template-rtl.css index 4e1ee9fe69113..d5820fc5dbf64 100644 --- a/administrator/templates/isis/css/template-rtl.css +++ b/administrator/templates/isis/css/template-rtl.css @@ -9088,8 +9088,6 @@ input:focus, margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } #menu-assignment .menu-links-block { background-color: #fafafa; diff --git a/administrator/templates/isis/css/template.css b/administrator/templates/isis/css/template.css index c7ae130221745..2e2ec4a34e187 100644 --- a/administrator/templates/isis/css/template.css +++ b/administrator/templates/isis/css/template.css @@ -9088,8 +9088,6 @@ input:focus, margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } #menu-assignment .menu-links-block { background-color: #fafafa; diff --git a/administrator/templates/isis/html/com_media/imageslist/default_folder.php b/administrator/templates/isis/html/com_media/imageslist/default_folder.php index 6fd2b12f53dd1..fb0b77403e6f6 100644 --- a/administrator/templates/isis/html/com_media/imageslist/default_folder.php +++ b/administrator/templates/isis/html/com_media/imageslist/default_folder.php @@ -12,7 +12,7 @@ $input = JFactory::getApplication()->input; ?>
  • - +
    diff --git a/administrator/templates/isis/html/com_media/imageslist/default_image.php b/administrator/templates/isis/html/com_media/imageslist/default_image.php index 6a5eea836df14..5f1597b350b21 100644 --- a/administrator/templates/isis/html/com_media/imageslist/default_image.php +++ b/administrator/templates/isis/html/com_media/imageslist/default_image.php @@ -17,14 +17,14 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php b/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php index 2a62670982838..192c4f14abb6b 100644 --- a/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php +++ b/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php @@ -13,22 +13,22 @@ folders as $i => $folder) : ?>
  • canDelete):?> - × + ×
    - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?>
    - +
    - - name, 10, false); ?> + + escape($folder->name), 10, false); ?>
  • diff --git a/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php b/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php index ae1afdcc39ea2..6297e67ab6466 100644 --- a/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php +++ b/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php @@ -22,23 +22,23 @@ canDelete):?>
    + href="index.php?option=com_media&task=file.delete&tmpl=index&=1&folder=state->folder); ?>&rm[]=escape($img->name); ?>" + rel="escape($img->name); ?>" title="">
    canDelete):?> - name, false, 'rm', 'cb-image'); ?> + escape($img->name), false, 'rm', 'cb-image'); ?>
    - - name; ?> + + escape($img->name); ?>
    diff --git a/administrator/templates/isis/less/pages/_com_templates.less b/administrator/templates/isis/less/pages/_com_templates.less index 69d17fc920a14..7f8d76e7a99df 100644 --- a/administrator/templates/isis/less/pages/_com_templates.less +++ b/administrator/templates/isis/less/pages/_com_templates.less @@ -17,8 +17,6 @@ margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } } .menu-links-block { diff --git a/build/phpcs/Joomla/ruleset.xml b/build/phpcs/Joomla/ruleset.xml index ac4a3d675b0bd..7e094ee1fdf63 100644 --- a/build/phpcs/Joomla/ruleset.xml +++ b/build/phpcs/Joomla/ruleset.xml @@ -157,6 +157,7 @@ templates/* layouts/* tests/* + administrator/components/* diff --git a/components/com_content/helpers/icon.php b/components/com_content/helpers/icon.php index e3b730003f467..4e570c328e679 100644 --- a/components/com_content/helpers/icon.php +++ b/components/com_content/helpers/icon.php @@ -73,7 +73,8 @@ public static function email($article, $params, $attribs = array(), $legacy = fa $link = $base . JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language), false); $url = 'index.php?option=com_mailto&tmpl=component&template=' . $template . '&link=' . MailtoHelper::addLink($link); - $status = 'width=400,height=350,menubar=yes,resizable=yes'; + $height = JFactory::getApplication()->get('captcha', '0') === '0' ? 450 : 550; + $status = 'width=400,height=' . $height . ',menubar=yes,resizable=yes'; $text = JLayoutHelper::render('joomla.content.icons.email', array('params' => $params, 'legacy' => $legacy)); diff --git a/components/com_finder/helpers/html/filter.php b/components/com_finder/helpers/html/filter.php index 402959561e073..74eba0960e3d1 100644 --- a/components/com_finder/helpers/html/filter.php +++ b/components/com_finder/helpers/html/filter.php @@ -187,10 +187,9 @@ public static function slider($options = array()) // Build a node. $html .= '
    '; $html .= '
    '; - $html .= '
    '; diff --git a/components/com_mailto/controller.php b/components/com_mailto/controller.php index 3f2b861feab1d..9d82d9ce74556 100644 --- a/components/com_mailto/controller.php +++ b/components/com_mailto/controller.php @@ -12,9 +12,7 @@ /** * Mailer Component Controller. * - * @package Joomla.Site - * @subpackage com_mailto - * @since 1.5 + * @since 1.5 */ class MailtoController extends JControllerLegacy { @@ -23,12 +21,10 @@ class MailtoController extends JControllerLegacy * * @return void * - * @since 1.5 + * @since 1.5 */ public function mailto() { - $session = JFactory::getSession(); - $session->set('com_mailto.formtime', time()); $this->input->set('view', 'mailto'); $this->display(); } @@ -46,24 +42,34 @@ public function send() $this->checkToken(); $app = JFactory::getApplication(); - $session = JFactory::getSession(); - $timeout = $session->get('com_mailto.formtime', 0); + $model = $this->getModel('mailto'); + $data = $model->getData(); - if ($timeout == 0 || time() - $timeout < 20) + // Validate the posted data. + $form = $model->getForm(); + + if (!$form) { - JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + JError::raiseError(500, $model->getError()); - return $this->mailto(); + return false; } - $SiteName = $app->get('sitename'); - $link = MailtoHelper::validateHash($this->input->get('link', '', 'post')); - - // Verify that this is a local link - if (!$link || !JUri::isInternal($link)) + if (!$model->validate($form, $data)) { - // Non-local url... - JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + $errors = $model->getErrors(); + + foreach ($errors as $error) + { + $errorMessage = $error; + + if ($error instanceof Exception) + { + $errorMessage = $error->getMessage(); + } + + $app->enqueueMessage($errorMessage, 'error'); + } return $this->mailto(); } @@ -77,24 +83,16 @@ public function send() 'cc:' ); - // An array of the input fields to scan for injected headers - $fields = array( - 'mailto', - 'sender', - 'from', - 'subject', - ); - /* * Here is the meat and potatoes of the header injection test. We * iterate over the array of form input and check for header strings. * If we find one, send an unauthorized header and die. */ - foreach ($fields as $field) + foreach ($data as $key => $value) { foreach ($headers as $header) { - if (strpos($_POST[$field], $header) !== false) + if (strpos($value, $header) !== false) { JError::raiseError(403, ''); } @@ -106,25 +104,36 @@ public function send() */ unset($headers, $fields); - $email = $this->input->post->getString('mailto', ''); - $sender = $this->input->post->getString('sender', ''); - $from = $this->input->post->getString('from', ''); - $subject_default = JText::sprintf('COM_MAILTO_SENT_BY', $sender); - $subject = $this->input->post->getString('subject', '') !== '' ? $this->input->post->getString('subject') : $subject_default; + $siteName = $app->get('sitename'); + $link = MailtoHelper::validateHash($this->input->post->get('link', '', 'post')); + + // Verify that this is a local link + if (!$link || !JUri::isInternal($link)) + { + // Non-local url... + JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + + return $this->mailto(); + } + + $subject_default = JText::sprintf('COM_MAILTO_SENT_BY', $data['sender']); + $subject = $data['subject'] !== '' ? $data['subject'] : $subject_default; // Check for a valid to address $error = false; - if (!$email || !JMailHelper::isEmailAddress($email)) + if (!$data['emailto'] || !JMailHelper::isEmailAddress($data['emailto'])) { - $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $email); + $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $data['emailto']); + JError::raiseWarning(0, $error); } // Check for a valid from address - if (!$from || !JMailHelper::isEmailAddress($from)) + if (!$data['emailfrom'] || !JMailHelper::isEmailAddress($data['emailfrom'])) { - $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $from); + $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $data['emailfrom']); + JError::raiseWarning(0, $error); } @@ -135,19 +144,19 @@ public function send() // Build the message to send $msg = JText::_('COM_MAILTO_EMAIL_MSG'); - $body = sprintf($msg, $SiteName, $sender, $from, $link); + $body = sprintf($msg, $siteName, $data['sender'], $data['emailfrom'], $link); // Clean the email data $subject = JMailHelper::cleanSubject($subject); $body = JMailHelper::cleanBody($body); // To send we need to use punycode. - $from = JStringPunycode::emailToPunycode($from); - $from = JMailHelper::cleanAddress($from); - $email = JStringPunycode::emailToPunycode($email); + $data['emailfrom'] = JStringPunycode::emailToPunycode($data['emailfrom']); + $data['emailfrom'] = JMailHelper::cleanAddress($data['emailfrom']); + $data['emailto'] = JStringPunycode::emailToPunycode($data['emailto']); // Send the email - if (JFactory::getMailer()->sendMail($from, $sender, $email, $subject, $body) !== true) + if (JFactory::getMailer()->sendMail($data['emailfrom'], $data['sender'], $data['emailto'], $subject, $body) !== true) { JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); diff --git a/components/com_mailto/models/forms/mailto.xml b/components/com_mailto/models/forms/mailto.xml new file mode 100644 index 0000000000000..0469129f7f509 --- /dev/null +++ b/components/com_mailto/models/forms/mailto.xml @@ -0,0 +1,51 @@ + + +
    + + + + + + + + + +
    + diff --git a/components/com_mailto/models/mailto.php b/components/com_mailto/models/mailto.php new file mode 100644 index 0000000000000..428c157456367 --- /dev/null +++ b/components/com_mailto/models/mailto.php @@ -0,0 +1,104 @@ +loadForm('com_mailto.mailto', 'mailto', array('load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Method to get the data that should be injected in the form. + * + * @return array The default data is an empty array. + * + * @since __DEPLOY_VERSION__ + */ + protected function loadFormData() + { + $user = JFactory::getUser(); + $app = JFactory::getApplication(); + $data = $app->getUserState('mailto.mailto.form.data', array()); + + $data['link'] = urldecode($app->input->get('link', '', 'BASE64')); + + if ($data['link'] == '') + { + JError::raiseError(403, JText::_('COM_MAILTO_LINK_IS_MISSING')); + + return false; + } + + // Load with previous data, if it exists + $data['sender'] = $app->input->post->getString('sender', ''); + $data['subject'] = $app->input->post->getString('subject', ''); + $data['emailfrom'] = JStringPunycode::emailToPunycode($app->input->post->getString('emailfrom', '')); + $data['emailto'] = JStringPunycode::emailToPunycode($app->input->post->getString('emailto', '')); + + if (!$user->guest) + { + $data['sender'] = $user->name; + $data['emailfrom'] = $user->email; + } + + $app->setUserState('mailto.mailto.form.data', $data); + + $this->preprocessData('com_mailto.mailto', $data); + + return $data; + } + + /** + * Get the request data + * + * @return array The requested data + * + * @since __DEPLOY_VERSION__ + */ + public function getData() + { + $input = JFactory::getApplication()->input; + + $data['emailto'] = $input->get('emailto', '', 'string'); + $data['sender'] = $input->get('sender', '', 'string'); + $data['emailfrom'] = $input->get('emailfrom', '', 'string'); + $data['subject'] = $input->get('subject', '', 'string'); + + return $data; + } +} diff --git a/components/com_mailto/views/mailto/tmpl/default.php b/components/com_mailto/views/mailto/tmpl/default.php index dce72c893fc78..5a828e75112eb 100644 --- a/components/com_mailto/views/mailto/tmpl/default.php +++ b/components/com_mailto/views/mailto/tmpl/default.php @@ -12,23 +12,6 @@ JHtml::_('behavior.core'); JHtml::_('behavior.keepalive'); -$data = $this->get('data'); - -JFactory::getDocument()->addScriptDeclaration(" - Joomla.submitbutton = function(pressbutton) - { - var form = document.getElementById('mailtoForm'); - - // do field validation - if (form.mailto.value == '' || form.from.value == '') - { - alert('" . JText::_('COM_MAILTO_EMAIL_ERR_NOINFO', true) . "'); - return false; - } - form.submit(); - } -"); - ?>

    @@ -41,44 +24,29 @@

    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -

    - - -

    + +
    + form->getFieldset('') as $field) : ?> + hidden) : ?> + renderField(); ?> + + +
    +
    + + +
    +
    +
    - +
    diff --git a/components/com_mailto/views/mailto/view.html.php b/components/com_mailto/views/mailto/view.html.php index 893a3faa956be..0514789e4e78b 100644 --- a/components/com_mailto/views/mailto/view.html.php +++ b/components/com_mailto/views/mailto/view.html.php @@ -27,62 +27,9 @@ class MailtoViewMailto extends JViewLegacy */ public function display($tpl = null) { - $data = $this->getData(); - - if ($data === false) - { - return false; - } - - $this->set('data', $data); + $this->form = $this->get('Form'); + $this->link = urldecode(JFactory::getApplication()->input->get('link', '', 'BASE64')); return parent::display($tpl); } - - /** - * Get the form data - * - * @return object - * - * @since 1.5 - */ - protected function &getData() - { - $user = JFactory::getUser(); - $app = JFactory::getApplication(); - $data = new stdClass; - - $input = $app->input; - $method = $input->getMethod(); - $data->link = urldecode($input->$method->get('link', '', 'BASE64')); - - if ($data->link == '') - { - JError::raiseError(403, JText::_('COM_MAILTO_LINK_IS_MISSING')); - - return false; - } - - // Load with previous data, if it exists - $mailto = $app->input->post->getString('mailto', ''); - $sender = $app->input->post->getString('sender', ''); - $from = $app->input->post->getString('from', ''); - $subject = $app->input->post->getString('subject', ''); - - if ($user->get('id') > 0) - { - $data->sender = $user->get('name'); - $data->from = $user->get('email'); - } - else - { - $data->sender = $sender; - $data->from = JStringPunycode::emailToPunycode($from); - } - - $data->subject = $subject; - $data->mailto = JStringPunycode::emailToPunycode($mailto); - - return $data; - } } diff --git a/components/com_tags/controllers/tags.php b/components/com_tags/controllers/tags.php index effd2fd57e2cc..397a05cf5d378 100644 --- a/components/com_tags/controllers/tags.php +++ b/components/com_tags/controllers/tags.php @@ -25,6 +25,7 @@ public function searchAjax() { // Required objects $app = JFactory::getApplication(); + $user = JFactory::getUser(); // Receive request data $filters = array( @@ -35,7 +36,15 @@ public function searchAjax() 'parent_id' => $app->input->get('parent_id', 0, 'int'), ); - if ($results = JHelperTags::searchTags($filters)) + if ((!$user->authorise('core.edit.state', 'com_tags')) && (!$user->authorise('core.edit', 'com_tags'))) + { + // Filter on published for those who do not have edit or edit.state rights. + $filters['published'] = 1; + } + + $results = JHelperTags::searchTags($filters); + + if ($results) { // Output a JSON object echo json_encode($results); diff --git a/components/com_tags/models/tag.php b/components/com_tags/models/tag.php index 80247d44bc000..147fb333fc7f3 100644 --- a/components/com_tags/models/tag.php +++ b/components/com_tags/models/tag.php @@ -258,15 +258,15 @@ public function getItem($pk = null) { $this->item = false; - if (empty($id)) + if (empty($pk)) { - $id = $this->getState('tag.id'); + $pk = $this->getState('tag.id'); } // Get a level row instance. $table = JTable::getInstance('Tag', 'TagsTable'); - $idsArray = explode(',', $id); + $idsArray = explode(',', $pk); // Attempt to load the rows into an array. foreach ($idsArray as $id) diff --git a/composer.json b/composer.json index 503caf354f01b..f0b559dfc2278 100644 --- a/composer.json +++ b/composer.json @@ -40,6 +40,7 @@ "phpmailer/phpmailer": "^5.2.20", "symfony/polyfill-php55": "~1.2", "symfony/polyfill-php56": "~1.0", + "symfony/polyfill-php73": "~1.8", "symfony/yaml": "2.*", "simplepie/simplepie": "1.3.1" }, diff --git a/composer.lock b/composer.lock index ac93d84690a64..cb01862353286 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_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", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7df3275195712f2be8cdf526269d16a1", + "content-hash": "b9e71c95d44dc23403e9461ebafa348b", "packages": [ { "name": "ircmaxell/password-compat", @@ -50,16 +50,16 @@ }, { "name": "joomla/application", - "version": "1.8.1", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/application.git", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/f32371fc988356bbf052396dcfd782effdd74b6d", + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d", "shasum": "" }, "require": { @@ -69,12 +69,12 @@ "psr/log": "~1.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/event": "~1.2|~2.0", "joomla/session": "^1.2.1|~2.0", "joomla/test": "~1.1", "joomla/uri": "~1.1", - "phpunit/phpunit": "~4.8|>=5.0 <5.4", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", @@ -93,7 +93,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Application Package", "homepage": "https://github.com/joomla-framework/application", @@ -102,7 +102,7 @@ "framework", "joomla" ], - "time": "2017-07-14T12:54:12+00:00" + "time": "2018-05-20T15:35:58+00:00" }, { "name": "joomla/archive", @@ -387,16 +387,16 @@ }, { "name": "joomla/filter", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/joomla-framework/filter.git", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", + "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/6ec4c6020f7ef12c57a015410bdd11031620d952", + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952", "shasum": "" }, "require": { @@ -404,9 +404,9 @@ "php": "^5.3.10|~7.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/language": "~1.3", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." @@ -424,7 +424,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Filter Package", "homepage": "https://github.com/joomla-framework/filter", @@ -433,7 +433,7 @@ "framework", "joomla" ], - "time": "2017-07-04T15:07:30+00:00" + "time": "2018-05-20T15:17:26+00:00" }, { "name": "joomla/image", @@ -1294,6 +1294,61 @@ ], "time": "2017-10-11T12:05:26+00:00" }, + { + "name": "symfony/polyfill-php73", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9841f6fc047725a8286ea986018355bbc9200383" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php73/zipball/9841f6fc047725a8286ea986018355bbc9200383", + "reference": "9841f6fc047725a8286ea986018355bbc9200383", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-04-26T06:22:38+00:00" + }, { "name": "symfony/polyfill-util", "version": "v1.6.0", diff --git a/installation/controller/install/email.php b/installation/controller/install/email.php index 424eb23d146b5..c4ddce6a4b4f0 100644 --- a/installation/controller/install/email.php +++ b/installation/controller/install/email.php @@ -68,7 +68,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array(JText::_('INSTL_ADMIN_PASSWORD_LABEL'), $options['admin_password']); + $body[] = array(JText::_('INSTL_ADMIN_PASSWORD_LABEL'), $options['admin_password_plain']); } $body[] = $this->emailTitle(JText::_('INSTL_DATABASE')); @@ -78,7 +78,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array(JText::_('INSTL_DATABASE_PASSWORD_LABEL'), $options['db_pass']); + $body[] = array(JText::_('INSTL_DATABASE_PASSWORD_LABEL'), $options['db_pass_plain']); } $body[] = array(JText::_('INSTL_DATABASE_NAME_LABEL'), $options['db_name']); @@ -91,7 +91,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array( JText::_('INSTL_FTP_PASSWORD_LABEL'), $options['ftp_pass']); + $body[] = array( JText::_('INSTL_FTP_PASSWORD_LABEL'), $options['ftp_pass_plain']); } $body[] = array(JText::_('INSTL_FTP_HOST_LABEL'), $options['ftp_host']); diff --git a/installation/controller/removefolder.php b/installation/controller/removefolder.php index 56bf13f5ebd98..4e9f2eb1805bc 100644 --- a/installation/controller/removefolder.php +++ b/installation/controller/removefolder.php @@ -64,7 +64,7 @@ public function execute() { // Connect the FTP client. $ftp = JClientFtp::getInstance($options->ftp_host, $options->ftp_port); - $ftp->login($options->ftp_user, $options->ftp_pass); + $ftp->login($options->ftp_user, $options->ftp_pass_plain); // Translate path for the FTP account. $file = JPath::clean(str_replace(JPATH_CONFIGURATION, $options->ftp_root, $path), '/'); diff --git a/installation/language/nl-NL/nl-NL.ini b/installation/language/nl-NL/nl-NL.ini index 6220768955908..f4320a28fecdd 100644 --- a/installation/language/nl-NL/nl-NL.ini +++ b/installation/language/nl-NL/nl-NL.ini @@ -32,7 +32,7 @@ INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="PostgreSQL database-query is mislukt." INSTL_DATABASE_HOST_DESC="Dit is meestal "_QQ_"localhost"_QQ_" of een naam die door de webhost is doorgegeven." INSTL_DATABASE_HOST_LABEL="Naam host" INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="We waren niet in staat om het bestand aan te maken. Maak handmatig een bestand genaamd "_QQ_"%1$s"_QQ_" aan en upload het naar de "_QQ_"%2$s"_QQ_" map van uw Joomla site." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Verwijder, om te bevestigen dat u de eigenaar van deze website bent, het bestand genaamd "_QQ_"%1$s"_QQ_" dat we zojuist aangemaakt hebben in de map "_QQ_"%2$s"_QQ_" van uw Joomla site." +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Verwijder, om te bevestigen dat u de eigenaar van deze website bent, het bestand genaamd "_QQ_"%1$s"_QQ_" dat we aangemaakt hebben in de map "_QQ_"%2$s"_QQ_" van uw Joomla site." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="U probeert gebruik te maken van een database-host die niet op uw lokale server staat. Om veiligheidsredenen moet u het eigendom van uw web hosting account controleren. Lees de documentatie voor meer informatie." INSTL_DATABASE_NAME_DESC="Sommige hostingproviders staan slechts één databasenaam toe per account. In dat geval kunt u een ander tabelvoorvoegsel gebruiken om onderscheid te maken tussen verschillende Joomla! installaties." INSTL_DATABASE_NAME_LABEL="Naam database" @@ -41,7 +41,7 @@ INSTL_DATABASE_OLD_PROCESS_DESC=""_QQ_"Backup"_QQ_" of "_QQ_"Verwijder"_QQ_" eve INSTL_DATABASE_OLD_PROCESS_LABEL="Oude database verwerking" INSTL_DATABASE_PASSWORD_DESC="Voor de veiligheid van uw website is het verplicht een wachtwoord te gebruiken voor de database account" INSTL_DATABASE_PASSWORD_LABEL="Wachtwoord" -INSTL_DATABASE_PREFIX_DESC="Maak een tabelvoorvoegsel of gebruik het de willekeurig gegenereerde. Bij voorkeur drie of vier tekens lang, alleen alfanumerieke tekens en het MOET eindigen met een onderstrepingsteken. Zorg dat het gekozen voorvoegsel niet door andere tabellen wordt gebruikt." +INSTL_DATABASE_PREFIX_DESC="Maak een tabelvoorvoegsel of gebruik het de willekeurig gegenereerde. Bij voorkeur vier of vijf tekens lang, alleen alfanumerieke tekens en het MOET eindigen met een onderstrepingsteken. Zorg dat het gekozen voorvoegsel niet door andere tabellen wordt gebruikt." INSTL_DATABASE_PREFIX_LABEL="Tabelvoorvoegsel" INSTL_DATABASE_PREFIX_MSG="Het voorvoegsel van de database moet beginnen met een letter gevolgd door optioneel alfanumerieke tekens en een onderstrepingsteken" INSTL_DATABASE_TYPE_DESC="Dit is waarschijnlijk "_QQ_"MySQLi"_QQ_"" @@ -53,7 +53,7 @@ INSTL_DATABASE_USER_LABEL="Gebruikersnaam" ;FTP view INSTL_AUTOFIND_FTP_PATH="Automatisch FTP pad zoeken" INSTL_FTP="FTP configuratie" -INSTL_FTP_DESC="

    Mogelijk is het op sommige servers noodzakelijk uw FTP-gegevens in te vullen voor het voltooien van de installatie. Indien u problemen ondervindt bij het voltooien van de installatie zonder deze gegevens, controleer dan bij uw webhost of het instellen van de FTP-laag nodig is.

    Om veiligheidsredenen is het het beste om (als deze optie voor u beschikbaar is) een aparte FTP-gebruikersaccount aan te maken die alleen toegang heeft tot de Joomla! installatie en niet de gehele server. Uw webhost kan u hierbij behulpzaam zijn.

    Opmerking: Wanneer de installatie op een Windows-systeem wordt geïnstalleerd is de FTP-laag niet vereist.

    " +INSTL_FTP_DESC="

    Mogelijk is het op sommige servers noodzakelijk uw FTP-gegevens in te vullen voor het voltooien van de installatie. Indien u problemen ondervindt bij het voltooien van de installatie zonder deze gegevens, controleer dan bij uw webhost of het instellen van de FTP-laag nodig is.

    Om veiligheidsredenen is het het beste om, als deze optie voor u beschikbaar is, een aparte FTP-gebruikersaccount aan te maken die alleen toegang heeft tot de Joomla! installatie en niet de gehele server. Uw webhost kan u hierbij behulpzaam zijn.

    Opmerking: Wanneer de installatie op een Windows-systeem wordt geïnstalleerd is de FTP-laag niet vereist.

    " INSTL_FTP_ENABLE_LABEL="FTP-laag inschakelen" INSTL_FTP_HOST_LABEL="FTP host" INSTL_FTP_PASSWORD_LABEL="FTP wachtwoord" @@ -90,7 +90,7 @@ INSTL_SAMPLE_BROCHURE_SET="Brochure Engelse (GB) voorbeelddata" INSTL_SAMPLE_DATA_SET="Standaard Engelse (GB) voorbeelddata" INSTL_SAMPLE_LEARN_SET="Leer Joomla Engelse (GB) voorbeelddata" INSTL_SAMPLE_TESTING_SET="Test Engelse (GB) voorbeelddata" -INSTL_SITE_INSTALL_SAMPLE_NONE_DESC="Installeer Joomla met slechts één menu en inlogformulier en zonder verdere content." +INSTL_SITE_INSTALL_SAMPLE_NONE_DESC="Installeer Joomla met één menu en inlogformulier en zonder verdere content." INSTL_SAMPLE_BLOG_SET_DESC="Installeer Joomla met enkele artikelen en blog gerelateerde modules zoals Oudere artikelen, Bloglijst, Meest gelezen artikelen." INSTL_SAMPLE_BROCHURE_SET_DESC="Installeer Joomla met enkele pagina's (een menu met de pagina's Home, Over ons, Nieuws, Contact) en modules zoals Zoeken, Speciaal, Inlogformulier." INSTL_SAMPLE_DATA_SET_DESC="Installeer Joomla met één pagina (een menu met een link) en modules zoals Nieuwste artikel, Inlogformulier." @@ -204,7 +204,7 @@ INSTL_DATABASE_INVALID_SQLSRV_VERSION="SQL Server 2008 R2 (10.50.1600.1) of hoge INSTL_DATABASE_INVALID_SQLZURE_VERSION="SQL Server 2008 R2 (10.50.1600.1) of hoger is vereist om de installatie te vervolgen. Uw versie is: %s" INSTL_DATABASE_INVALID_TYPE="Selecteer een databasetype" INSTL_DATABASE_NAME_TOO_LONG="De MySQL databasenaam mag maximaal 64 tekens bevatten." -INSTL_DATABASE_INVALID_NAME="In MySQL versies ouder dan 5.1.6 mag de naam geen punten of andere "_QQ_"speciale"_QQ_" tekens bevatten. Uw versie is: %s" +INSTL_DATABASE_INVALID_NAME="In MySQL versies ouder dan 5.1.6 mogen in de naam geen punten of andere "_QQ_"speciale"_QQ_" tekens bevatten. Uw versie is: %s" INSTL_DATABASE_NAME_INVALID_SPACES="MySQL databasenamen en tabelnamen mogen niet beginnen of eindigen met een spatie." INSTL_DATABASE_NAME_INVALID_CHAR="Een MySQL identifier kan geen NULL ASCII(0x00) bevatten." INSTL_DATABASE_FILE_DOES_NOT_EXIST="Bestand %s bestaat niet" @@ -250,10 +250,8 @@ INSTL_MAGIC_QUOTES_GPC="Magic Quotes GPC uitgeschakeld" INSTL_MAGIC_QUOTES_RUNTIME="Magic Quotes Runtime" INSTL_MB_LANGUAGE_IS_DEFAULT="MB taal is standaard" INSTL_MB_STRING_OVERLOAD_OFF="MB string overload uitgeschakeld" -INSTL_MCRYPT_SUPPORT_AVAILABLE="Mcrypt ondersteuning" INSTL_NOTICEMBLANGNOTDEFAULT="PHP mbstring taal is niet ingesteld op neutral. Voeg de regel php_value mbstring.language neutral toe aan uw .htaccess bestand." INSTL_NOTICEMBSTRINGOVERLOAD="PHP mbstring function overload is ingesteld. Dit kan lokaal uitgeschakeld worden door de regel php_value mbstring.func_overload 0 in het .htaccess bestand op te nemen." -INSTL_NOTICEMCRYPTNOTAVAILABLE="Waarschuwing! PHP-mcrypt extensie moet geïnstalleerd of ingeschakeld zijn. Indien dit niet het geval is zullen sommige functies van Joomla niet beschikbaar zijn." INSTL_NOTICEYOUCANSTILLINSTALL="
    U kunt nog steeds de installatie voortzetten. Aan het einde van de installatie zullen de configuratie instellingen weergegeven worden. U dient enkel de code handmatig te uploaden. Klik in het tekstveld om de gehele weergegeven code te selecteren en kopieer en plak deze in een nieuw tekstbestand. Noem dit bestand 'configuration.php' en upload het naar de rootmap van uw website." INSTL_OUTPUT_BUFFERING="Gebufferde uitvoer" INSTL_PARSE_INI_FILE_AVAILABLE="INI Parser ondersteuning" diff --git a/installation/model/configuration.php b/installation/model/configuration.php index c31a544911a76..44e080f7f5bce 100644 --- a/installation/model/configuration.php +++ b/installation/model/configuration.php @@ -59,6 +59,8 @@ public function setup($options) */ public function createConfiguration($options) { + $saveFtp = isset($options->ftp_save) && $options->ftp_save; + // Create a new registry to build the configuration options. $registry = new Registry; @@ -81,7 +83,7 @@ public function createConfiguration($options) $registry->set('dbtype', $options->db_type); $registry->set('host', $options->db_host); $registry->set('user', $options->db_user); - $registry->set('password', $options->db_pass); + $registry->set('password', $options->db_pass_plain); $registry->set('db', $options->db_name); $registry->set('dbprefix', $options->db_prefix); @@ -93,9 +95,9 @@ public function createConfiguration($options) $registry->set('helpurl', $options->helpurl); $registry->set('ftp_host', isset($options->ftp_host) ? $options->ftp_host : ''); $registry->set('ftp_port', isset($options->ftp_host) ? $options->ftp_port : ''); - $registry->set('ftp_user', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_user)) ? $options->ftp_user : ''); - $registry->set('ftp_pass', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_pass)) ? $options->ftp_pass : ''); - $registry->set('ftp_root', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_root)) ? $options->ftp_root : ''); + $registry->set('ftp_user', ($saveFtp && isset($options->ftp_user)) ? $options->ftp_user : ''); + $registry->set('ftp_pass', ($saveFtp && isset($options->ftp_pass_plain)) ? $options->ftp_pass_plain : ''); + $registry->set('ftp_root', ($saveFtp && isset($options->ftp_root)) ? $options->ftp_root : ''); $registry->set('ftp_enable', isset($options->ftp_host) ? $options->ftp_enable : 0); // Locale settings. @@ -192,7 +194,7 @@ public function createConfiguration($options) { // Connect the FTP client. $ftp = JClientFtp::getInstance($options->ftp_host, $options->ftp_port); - $ftp->login($options->ftp_user, $options->ftp_pass); + $ftp->login($options->ftp_user, $options->ftp_pass_plain); // Translate path for the FTP account. $file = JPath::clean(str_replace(JPATH_CONFIGURATION, $options->ftp_root, $path), '/'); @@ -241,7 +243,7 @@ private function createRootUser($options) $options->db_type, $options->db_host, $options->db_user, - $options->db_pass, + $options->db_pass_plain, $options->db_name, $options->db_prefix ); @@ -253,7 +255,7 @@ private function createRootUser($options) return false; } - $cryptpass = JUserHelper::hashPassword($options->admin_password); + $cryptpass = JUserHelper::hashPassword($options->admin_password_plain); // Take the admin user id. $userId = InstallationModelDatabase::getUserId(); diff --git a/installation/model/database.php b/installation/model/database.php index 22a90ca811eda..271366371c3ed 100644 --- a/installation/model/database.php +++ b/installation/model/database.php @@ -280,7 +280,7 @@ public function initialise($options) $options->db_type, $options->db_host, $options->db_user, - $options->db_pass, + $options->db_pass_plain, $options->db_name, $options->db_prefix, $options->db_select @@ -350,7 +350,7 @@ public function createDatabase($options) 'driver' => $options->db_type, 'host' => $options->db_host, 'user' => $options->db_user, - 'password' => $options->db_pass, + 'password' => $options->db_pass_plain, 'prefix' => $options->db_prefix, 'select' => $options->db_select, ); diff --git a/installation/model/ftp.php b/installation/model/ftp.php index 44af989665cf2..d376108f03fa2 100644 --- a/installation/model/ftp.php +++ b/installation/model/ftp.php @@ -46,7 +46,7 @@ public function detectFtpRoot($options) return false; } - if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass'))) + if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass_plain'))) { JFactory::getApplication()->enqueueMessage(JText::_('INSTL_FTP_NOLOGIN'), 'error'); @@ -162,7 +162,7 @@ public function verifyFtpSettings($options) return false; } - if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass'))) + if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass_plain'))) { $ftp->quit(); JFactory::getApplication()->enqueueMessage(JText::_('INSTL_FTP_NOLOGIN'), 'error'); diff --git a/installation/model/setup.php b/installation/model/setup.php index adfd24a6c967a..a90bd98e2908a 100644 --- a/installation/model/setup.php +++ b/installation/model/setup.php @@ -48,6 +48,19 @@ public function storeOptions($options) $options['language'] = JFactory::getLanguage()->getTag(); } + // Store passwords as a separate key that is not used in the forms + foreach (array('admin_password', 'db_pass', 'ftp_pass') as $passwordField) + { + if (isset($options[$passwordField])) + { + $plainTextKey = $passwordField . '_plain'; + + $options[$plainTextKey] = $options[$passwordField]; + + unset($options[$passwordField]); + } + } + // Get the session $session = JFactory::getSession(); $options['helpurl'] = $session->get('setup.helpurl', null); diff --git a/installation/sql/mysql/joomla.sql b/installation/sql/mysql/joomla.sql index f74f8a66b35ee..7ac92c317d80d 100644 --- a/installation/sql/mysql/joomla.sql +++ b/installation/sql/mysql/joomla.sql @@ -509,7 +509,7 @@ INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '0000-00-00 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), diff --git a/installation/sql/postgresql/joomla.sql b/installation/sql/postgresql/joomla.sql index 9b1a80d66dcc6..55c721cfda6e8 100644 --- a/installation/sql/postgresql/joomla.sql +++ b/installation/sql/postgresql/joomla.sql @@ -523,7 +523,7 @@ INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1970-01-01 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '1970-01-01 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), diff --git a/installation/sql/sqlazure/joomla.sql b/installation/sql/sqlazure/joomla.sql index 0f39ef82a2da8..e24e15f75af56 100644 --- a/installation/sql/sqlazure/joomla.sql +++ b/installation/sql/sqlazure/joomla.sql @@ -738,7 +738,7 @@ INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1900-01-01 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '1900-01-01 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), diff --git a/installation/view/summary/tmpl/default.php b/installation/view/summary/tmpl/default.php index 32227981a1e0c..9d961ea6c6e49 100644 --- a/installation/view/summary/tmpl/default.php +++ b/installation/view/summary/tmpl/default.php @@ -119,14 +119,6 @@ options['admin_user']; ?> - - - - - - options['admin_password'] ? '***': ''; ?> - - @@ -164,14 +156,6 @@ options['db_user']; ?> - - - - - - options['db_pass'] ? '***': ''; ?> - - @@ -233,14 +217,6 @@ options['ftp_user']; ?> - - - - - - options['ftp_pass'] ? '***': ''; ?> - - diff --git a/language/en-GB/en-GB.com_mailto.ini b/language/en-GB/en-GB.com_mailto.ini index 8eb5596a54100..16c6fd1f15712 100644 --- a/language/en-GB/en-GB.com_mailto.ini +++ b/language/en-GB/en-GB.com_mailto.ini @@ -5,6 +5,7 @@ COM_MAILTO="Mailto" COM_MAILTO_CANCEL="Cancel" +COM_MAILTO_CAPTCHA="Captcha" COM_MAILTO_CLOSE_WINDOW="Close Window" COM_MAILTO_EMAIL_ERR_NOINFO="Please provide a valid email address." COM_MAILTO_EMAIL_INVALID="The address '%s' does not appear to be a valid email address." diff --git a/layouts/joomla/edit/params.php b/layouts/joomla/edit/params.php index 041c01e29c059..d93b0864de0fc 100644 --- a/layouts/joomla/edit/params.php +++ b/layouts/joomla/edit/params.php @@ -23,17 +23,11 @@ $extraFields = $displayData->get('extra_fields') ?: array(); $tabName = $displayData->get('tab_name') ?: 'myTab'; -if (!empty($displayData->hiddenFieldsets)) -{ - // These are required to preserve data on save when fields are not displayed. - $hiddenFieldsets = $displayData->hiddenFieldsets ?: array(); -} +// These are required to preserve data on save when fields are not displayed. +$hiddenFieldsets = $displayData->get('hiddenFieldsets') ?: array(); -if (!empty($displayData->configFieldsets)) -{ - // These are required to configure showing and hiding fields in the editor. - $configFieldsets = $displayData->configFieldsets ?: array(); -} +// These are required to configure showing and hiding fields in the editor. +$configFieldsets = $displayData->get('configFieldsets') ?: array(); // Handle the hidden fieldsets when show_options is set false if (!$displayData->get('show_options', 1)) diff --git a/libraries/joomla/session/handler/joomla.php b/libraries/joomla/session/handler/joomla.php index e9128baaaf4b5..db669395e67e6 100644 --- a/libraries/joomla/session/handler/joomla.php +++ b/libraries/joomla/session/handler/joomla.php @@ -97,7 +97,7 @@ public function start() */ public function clear() { - $session_name = $this->getName(); + $sessionName = $this->getName(); /* * In order to kill the session altogether, such as to log the user out, the session id @@ -105,9 +105,11 @@ public function clear() * then the session cookie must be deleted. * We need to use setcookie here or we will get a warning in some session handlers (ex: files). */ - if (isset($_COOKIE[$session_name])) + if (isset($_COOKIE[$sessionName])) { - setcookie($session_name, '', 1); + $cookie = session_get_cookie_params(); + + setcookie($sessionName, '', 1, $cookie['path'], $cookie['domain'], $cookie['secure'], true); } parent::clear(); diff --git a/libraries/legacy/application/application.php b/libraries/legacy/application/application.php index 6543519dc7a56..2b25277e87633 100644 --- a/libraries/legacy/application/application.php +++ b/libraries/legacy/application/application.php @@ -388,7 +388,7 @@ public function redirect($url, $msg = '', $msgType = 'message', $moved = false) // so we will output a javascript redirect statement. if (headers_sent()) { - echo "\n"; + echo "\n"; } else { @@ -400,7 +400,7 @@ public function redirect($url, $msg = '', $msgType = 'message', $moved = false) { // MSIE type browser and/or server cause issues when URL contains utf8 character,so use a javascript redirect method echo '' - . ''; + . ''; } else { diff --git a/libraries/src/Application/WebApplication.php b/libraries/src/Application/WebApplication.php index ca71bc5ec0b04..afac65dac0c8b 100644 --- a/libraries/src/Application/WebApplication.php +++ b/libraries/src/Application/WebApplication.php @@ -585,7 +585,7 @@ public function redirect($url, $status = 303) // If the headers have already been sent we need to send the redirect statement via JavaScript. if ($this->checkHeadersSent()) { - echo "\n"; + echo "\n"; } else { @@ -594,7 +594,7 @@ public function redirect($url, $status = 303) { $html = ''; $html .= ''; - $html .= ''; + $html .= ''; $html .= ''; echo $html; diff --git a/libraries/src/Filesystem/Stream.php b/libraries/src/Filesystem/Stream.php index a9bb53af955f6..a56d417de6158 100644 --- a/libraries/src/Filesystem/Stream.php +++ b/libraries/src/Filesystem/Stream.php @@ -11,8 +11,7 @@ defined('JPATH_PLATFORM') or die; use Joomla\CMS\Object\CMSObject; -use Joomla\CMS\Filesystem\FilesystemHelper; -use Joomla\Language\Text; +use Joomla\CMS\Language\Text; /** * Joomla! Stream Interface diff --git a/libraries/src/Filter/InputFilter.php b/libraries/src/Filter/InputFilter.php index d6449b42def75..3f80fc28c52b4 100644 --- a/libraries/src/Filter/InputFilter.php +++ b/libraries/src/Filter/InputFilter.php @@ -509,7 +509,7 @@ public static function isSafeFile($file, $options = array()) // Forbidden string in extension (e.g. php matched .php, .xxx.php, .php.xxx and so on) 'forbidden_extensions' => array( - 'php', 'phps', 'pht', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'inc', 'pl', 'cgi', 'fcgi', 'java', 'jar', 'py', + 'php', 'phps', 'pht', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'phar', 'inc', 'pl', 'cgi', 'fcgi', 'java', 'jar', 'py', ), // type . $plugin->name; + $className = 'Plg' . str_replace('-', '', $plugin->type) . $plugin->name; if (class_exists($className)) { diff --git a/libraries/src/Version.php b/libraries/src/Version.php index 2b753b38ce836..adbb24469e466 100644 --- a/libraries/src/Version.php +++ b/libraries/src/Version.php @@ -111,7 +111,7 @@ final class Version * @var string * @since 3.5 */ - const RELDATE = '18-April-2018'; + const RELDATE = '22-May-2018'; /** * Release time. diff --git a/libraries/vendor/composer/ClassLoader.php b/libraries/vendor/composer/ClassLoader.php index 2c72175e7723a..dc02dfb114fb6 100644 --- a/libraries/vendor/composer/ClassLoader.php +++ b/libraries/vendor/composer/ClassLoader.php @@ -379,9 +379,9 @@ private function findFileWithExtension($class, $ext) $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (file_exists($file = $dir . $pathEnd)) { return $file; } } diff --git a/libraries/vendor/composer/autoload_classmap.php b/libraries/vendor/composer/autoload_classmap.php index c00b678d60467..2e6b35fa4a07c 100644 --- a/libraries/vendor/composer/autoload_classmap.php +++ b/libraries/vendor/composer/autoload_classmap.php @@ -35,11 +35,6 @@ 'Joomla\\Data\\DataObject' => $vendorDir . '/joomla/data/src/DataObject.php', 'Joomla\\Data\\DataSet' => $vendorDir . '/joomla/data/src/DataSet.php', 'Joomla\\Data\\DumpableInterface' => $vendorDir . '/joomla/data/src/DumpableInterface.php', - 'Joomla\\Data\\Tests\\DataObjectTest' => $vendorDir . '/joomla/data/Tests/DataObjectTest.php', - 'Joomla\\Data\\Tests\\DataSetTest' => $vendorDir . '/joomla/data/Tests/DataSetTest.php', - 'Joomla\\Data\\Tests\\JDataBuran' => $vendorDir . '/joomla/data/Tests/Stubs/buran.php', - 'Joomla\\Data\\Tests\\JDataCapitaliser' => $vendorDir . '/joomla/data/Tests/Stubs/capitaliser.php', - 'Joomla\\Data\\Tests\\JDataVostok' => $vendorDir . '/joomla/data/Tests/Stubs/vostok.php', 'Joomla\\Event\\AbstractEvent' => $vendorDir . '/joomla/event/src/AbstractEvent.php', 'Joomla\\Event\\DelegatingDispatcher' => $vendorDir . '/joomla/event/src/DelegatingDispatcher.php', 'Joomla\\Event\\Dispatcher' => $vendorDir . '/joomla/event/src/Dispatcher.php', @@ -51,17 +46,6 @@ 'Joomla\\Event\\EventInterface' => $vendorDir . '/joomla/event/src/EventInterface.php', 'Joomla\\Event\\ListenersPriorityQueue' => $vendorDir . '/joomla/event/src/ListenersPriorityQueue.php', 'Joomla\\Event\\Priority' => $vendorDir . '/joomla/event/src/Priority.php', - 'Joomla\\Event\\Tests\\AbstractEventTest' => $vendorDir . '/joomla/event/Tests/AbstractEventTest.php', - 'Joomla\\Event\\Tests\\DelegatingDispatcherTest' => $vendorDir . '/joomla/event/Tests/DelegatingDispatcherTest.php', - 'Joomla\\Event\\Tests\\DispatcherTest' => $vendorDir . '/joomla/event/Tests/DispatcherTest.php', - 'Joomla\\Event\\Tests\\EventImmutableTest' => $vendorDir . '/joomla/event/Tests/EventImmutableTest.php', - 'Joomla\\Event\\Tests\\EventTest' => $vendorDir . '/joomla/event/Tests/EventTest.php', - 'Joomla\\Event\\Tests\\ListenersPriorityQueueTest' => $vendorDir . '/joomla/event/Tests/ListenersPriorityQueueTest.php', - 'Joomla\\Event\\Tests\\Stubs\\EmptyListener' => $vendorDir . '/joomla/event/Tests/Stubs/EmptyListener.php', - 'Joomla\\Event\\Tests\\Stubs\\FirstListener' => $vendorDir . '/joomla/event/Tests/Stubs/FirstListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SecondListener' => $vendorDir . '/joomla/event/Tests/Stubs/SecondListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SomethingListener' => $vendorDir . '/joomla/event/Tests/Stubs/SomethingListener.php', - 'Joomla\\Event\\Tests\\Stubs\\ThirdListener' => $vendorDir . '/joomla/event/Tests/Stubs/ThirdListener.php', 'Joomla\\Filesystem\\Buffer' => $vendorDir . '/joomla/filesystem/src/Buffer.php', 'Joomla\\Filesystem\\Clients\\FtpClient' => $vendorDir . '/joomla/filesystem/src/Clients/FtpClient.php', 'Joomla\\Filesystem\\Exception\\FilesystemException' => $vendorDir . '/joomla/filesystem/src/Exception/FilesystemException.php', @@ -92,6 +76,13 @@ 'Joomla\\Input\\Files' => $vendorDir . '/joomla/input/src/Files.php', 'Joomla\\Input\\Input' => $vendorDir . '/joomla/input/src/Input.php', 'Joomla\\Input\\Json' => $vendorDir . '/joomla/input/src/Json.php', + 'Joomla\\Input\\Tests\\CliTest' => $vendorDir . '/joomla/input/Tests/CliTest.php', + 'Joomla\\Input\\Tests\\CookieTest' => $vendorDir . '/joomla/input/Tests/CookieTest.php', + 'Joomla\\Input\\Tests\\FilesTest' => $vendorDir . '/joomla/input/Tests/FilesTest.php', + 'Joomla\\Input\\Tests\\FilterInputMock' => $vendorDir . '/joomla/input/Tests/Stubs/FilterInputMock.php', + 'Joomla\\Input\\Tests\\InputMocker' => $vendorDir . '/joomla/input/Tests/InputMocker.php', + 'Joomla\\Input\\Tests\\InputTest' => $vendorDir . '/joomla/input/Tests/InputTest.php', + 'Joomla\\Input\\Tests\\JsonTest' => $vendorDir . '/joomla/input/Tests/JsonTest.php', 'Joomla\\Ldap\\LdapClient' => $vendorDir . '/joomla/ldap/src/LdapClient.php', 'Joomla\\Registry\\AbstractRegistryFormat' => $vendorDir . '/joomla/registry/src/AbstractRegistryFormat.php', 'Joomla\\Registry\\Factory' => $vendorDir . '/joomla/registry/src/Factory.php', @@ -124,9 +115,6 @@ 'Joomla\\String\\String' => $vendorDir . '/joomla/string/src/String.php', 'Joomla\\String\\StringHelper' => $vendorDir . '/joomla/string/src/StringHelper.php', 'Joomla\\Uri\\AbstractUri' => $vendorDir . '/joomla/uri/src/AbstractUri.php', - 'Joomla\\Uri\\Tests\\UriHelperTest' => $vendorDir . '/joomla/uri/Tests/UriHelperTest.php', - 'Joomla\\Uri\\Tests\\UriImmuteableTest' => $vendorDir . '/joomla/uri/Tests/UriImmutableTest.php', - 'Joomla\\Uri\\Tests\\UriTest' => $vendorDir . '/joomla/uri/Tests/UriTest.php', 'Joomla\\Uri\\Uri' => $vendorDir . '/joomla/uri/src/Uri.php', 'Joomla\\Uri\\UriHelper' => $vendorDir . '/joomla/uri/src/UriHelper.php', 'Joomla\\Uri\\UriImmutable' => $vendorDir . '/joomla/uri/src/UriImmutable.php', @@ -145,8 +133,6 @@ 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'SMTP' => $vendorDir . '/phpmailer/phpmailer/class.smtp.php', 'SimplePie' => $vendorDir . '/simplepie/simplepie/library/SimplePie.php', 'SimplePie_Author' => $vendorDir . '/simplepie/simplepie/library/SimplePie/Author.php', diff --git a/libraries/vendor/composer/autoload_files.php b/libraries/vendor/composer/autoload_files.php index 2702ae9181742..711d3b54a61ae 100644 --- a/libraries/vendor/composer/autoload_files.php +++ b/libraries/vendor/composer/autoload_files.php @@ -26,4 +26,5 @@ 'edc6464955a37aa4d5fbf39d40fb6ee7' => $vendorDir . '/symfony/polyfill-php55/bootstrap.php', 'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php', '3109cb1a231dcd04bee1f9f620d46975' => $vendorDir . '/paragonie/sodium_compat/autoload.php', + '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php', ); diff --git a/libraries/vendor/composer/autoload_psr4.php b/libraries/vendor/composer/autoload_psr4.php index 012682e2bf817..de3e6f5bd5e1e 100644 --- a/libraries/vendor/composer/autoload_psr4.php +++ b/libraries/vendor/composer/autoload_psr4.php @@ -7,6 +7,7 @@ return array( 'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'), + 'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'), 'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'), 'Symfony\\Polyfill\\Php55\\' => array($vendorDir . '/symfony/polyfill-php55'), 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), diff --git a/libraries/vendor/composer/autoload_static.php b/libraries/vendor/composer/autoload_static.php index 84a7666a66bdd..e9131afecc631 100644 --- a/libraries/vendor/composer/autoload_static.php +++ b/libraries/vendor/composer/autoload_static.php @@ -27,12 +27,14 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'edc6464955a37aa4d5fbf39d40fb6ee7' => __DIR__ . '/..' . '/symfony/polyfill-php55/bootstrap.php', 'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php', '3109cb1a231dcd04bee1f9f620d46975' => __DIR__ . '/..' . '/paragonie/sodium_compat/autoload.php', + '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php', ); public static $prefixLengthsPsr4 = array ( 'S' => array ( 'Symfony\\Polyfill\\Util\\' => 22, + 'Symfony\\Polyfill\\Php73\\' => 23, 'Symfony\\Polyfill\\Php56\\' => 23, 'Symfony\\Polyfill\\Php55\\' => 23, 'Symfony\\Component\\Yaml\\' => 23, @@ -69,6 +71,10 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-util', ), + 'Symfony\\Polyfill\\Php73\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php73', + ), 'Symfony\\Polyfill\\Php56\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php56', @@ -206,11 +212,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Data\\DataObject' => __DIR__ . '/..' . '/joomla/data/src/DataObject.php', 'Joomla\\Data\\DataSet' => __DIR__ . '/..' . '/joomla/data/src/DataSet.php', 'Joomla\\Data\\DumpableInterface' => __DIR__ . '/..' . '/joomla/data/src/DumpableInterface.php', - 'Joomla\\Data\\Tests\\DataObjectTest' => __DIR__ . '/..' . '/joomla/data/Tests/DataObjectTest.php', - 'Joomla\\Data\\Tests\\DataSetTest' => __DIR__ . '/..' . '/joomla/data/Tests/DataSetTest.php', - 'Joomla\\Data\\Tests\\JDataBuran' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/buran.php', - 'Joomla\\Data\\Tests\\JDataCapitaliser' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/capitaliser.php', - 'Joomla\\Data\\Tests\\JDataVostok' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/vostok.php', 'Joomla\\Event\\AbstractEvent' => __DIR__ . '/..' . '/joomla/event/src/AbstractEvent.php', 'Joomla\\Event\\DelegatingDispatcher' => __DIR__ . '/..' . '/joomla/event/src/DelegatingDispatcher.php', 'Joomla\\Event\\Dispatcher' => __DIR__ . '/..' . '/joomla/event/src/Dispatcher.php', @@ -222,17 +223,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Event\\EventInterface' => __DIR__ . '/..' . '/joomla/event/src/EventInterface.php', 'Joomla\\Event\\ListenersPriorityQueue' => __DIR__ . '/..' . '/joomla/event/src/ListenersPriorityQueue.php', 'Joomla\\Event\\Priority' => __DIR__ . '/..' . '/joomla/event/src/Priority.php', - 'Joomla\\Event\\Tests\\AbstractEventTest' => __DIR__ . '/..' . '/joomla/event/Tests/AbstractEventTest.php', - 'Joomla\\Event\\Tests\\DelegatingDispatcherTest' => __DIR__ . '/..' . '/joomla/event/Tests/DelegatingDispatcherTest.php', - 'Joomla\\Event\\Tests\\DispatcherTest' => __DIR__ . '/..' . '/joomla/event/Tests/DispatcherTest.php', - 'Joomla\\Event\\Tests\\EventImmutableTest' => __DIR__ . '/..' . '/joomla/event/Tests/EventImmutableTest.php', - 'Joomla\\Event\\Tests\\EventTest' => __DIR__ . '/..' . '/joomla/event/Tests/EventTest.php', - 'Joomla\\Event\\Tests\\ListenersPriorityQueueTest' => __DIR__ . '/..' . '/joomla/event/Tests/ListenersPriorityQueueTest.php', - 'Joomla\\Event\\Tests\\Stubs\\EmptyListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/EmptyListener.php', - 'Joomla\\Event\\Tests\\Stubs\\FirstListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/FirstListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SecondListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/SecondListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SomethingListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/SomethingListener.php', - 'Joomla\\Event\\Tests\\Stubs\\ThirdListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/ThirdListener.php', 'Joomla\\Filesystem\\Buffer' => __DIR__ . '/..' . '/joomla/filesystem/src/Buffer.php', 'Joomla\\Filesystem\\Clients\\FtpClient' => __DIR__ . '/..' . '/joomla/filesystem/src/Clients/FtpClient.php', 'Joomla\\Filesystem\\Exception\\FilesystemException' => __DIR__ . '/..' . '/joomla/filesystem/src/Exception/FilesystemException.php', @@ -263,6 +253,13 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Input\\Files' => __DIR__ . '/..' . '/joomla/input/src/Files.php', 'Joomla\\Input\\Input' => __DIR__ . '/..' . '/joomla/input/src/Input.php', 'Joomla\\Input\\Json' => __DIR__ . '/..' . '/joomla/input/src/Json.php', + 'Joomla\\Input\\Tests\\CliTest' => __DIR__ . '/..' . '/joomla/input/Tests/CliTest.php', + 'Joomla\\Input\\Tests\\CookieTest' => __DIR__ . '/..' . '/joomla/input/Tests/CookieTest.php', + 'Joomla\\Input\\Tests\\FilesTest' => __DIR__ . '/..' . '/joomla/input/Tests/FilesTest.php', + 'Joomla\\Input\\Tests\\FilterInputMock' => __DIR__ . '/..' . '/joomla/input/Tests/Stubs/FilterInputMock.php', + 'Joomla\\Input\\Tests\\InputMocker' => __DIR__ . '/..' . '/joomla/input/Tests/InputMocker.php', + 'Joomla\\Input\\Tests\\InputTest' => __DIR__ . '/..' . '/joomla/input/Tests/InputTest.php', + 'Joomla\\Input\\Tests\\JsonTest' => __DIR__ . '/..' . '/joomla/input/Tests/JsonTest.php', 'Joomla\\Ldap\\LdapClient' => __DIR__ . '/..' . '/joomla/ldap/src/LdapClient.php', 'Joomla\\Registry\\AbstractRegistryFormat' => __DIR__ . '/..' . '/joomla/registry/src/AbstractRegistryFormat.php', 'Joomla\\Registry\\Factory' => __DIR__ . '/..' . '/joomla/registry/src/Factory.php', @@ -295,9 +292,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\String\\String' => __DIR__ . '/..' . '/joomla/string/src/String.php', 'Joomla\\String\\StringHelper' => __DIR__ . '/..' . '/joomla/string/src/StringHelper.php', 'Joomla\\Uri\\AbstractUri' => __DIR__ . '/..' . '/joomla/uri/src/AbstractUri.php', - 'Joomla\\Uri\\Tests\\UriHelperTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriHelperTest.php', - 'Joomla\\Uri\\Tests\\UriImmuteableTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriImmutableTest.php', - 'Joomla\\Uri\\Tests\\UriTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriTest.php', 'Joomla\\Uri\\Uri' => __DIR__ . '/..' . '/joomla/uri/src/Uri.php', 'Joomla\\Uri\\UriHelper' => __DIR__ . '/..' . '/joomla/uri/src/UriHelper.php', 'Joomla\\Uri\\UriImmutable' => __DIR__ . '/..' . '/joomla/uri/src/UriImmutable.php', @@ -316,8 +310,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'SMTP' => __DIR__ . '/..' . '/phpmailer/phpmailer/class.smtp.php', 'SimplePie' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie.php', 'SimplePie_Author' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie/Author.php', diff --git a/libraries/vendor/composer/installed.json b/libraries/vendor/composer/installed.json index 401f84f789f53..c385548d794fc 100644 --- a/libraries/vendor/composer/installed.json +++ b/libraries/vendor/composer/installed.json @@ -1,68 +1,82 @@ [ { - "name": "joomla/uri", - "version": "1.1.1", - "version_normalized": "1.1.1.0", + "name": "ircmaxell/password-compat", + "version": "v1.0.4", + "version_normalized": "1.0.4.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/uri.git", - "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f" + "url": "https://github.com/ircmaxell/password_compat.git", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/uri/zipball/980e532e4235bb8f1ada15b28822abbeb171da3f", - "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f", + "url": "https://github.com/gitapi/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", "shasum": "" }, - "require": { - "php": ">=5.3.10" + "require-dev": { + "phpunit/phpunit": "4.*" }, - "time": "2014-02-09T02:57:17+00:00", - "type": "joomla-package", + "time": "2014-11-20T16:49:30+00:00", + "type": "library", "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Uri\\": "src/", - "Joomla\\Uri\\Tests\\": "Tests/" - } + "files": [ + "lib/password.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT" ], - "description": "Joomla Uri Package", - "homepage": "https://github.com/joomla-framework/uri", + "authors": [ + { + "name": "Anthony Ferrara", + "email": "ircmaxell@php.net", + "homepage": "http://blog.ircmaxell.com" + } + ], + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", + "homepage": "https://github.com/ircmaxell/password_compat", "keywords": [ - "framework", - "joomla", - "uri" + "hashing", + "password" ] }, { - "name": "joomla/input", - "version": "1.2.0", - "version_normalized": "1.2.0.0", + "name": "joomla/application", + "version": "1.9.0", + "version_normalized": "1.9.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/input.git", - "reference": "b6098276043e2d627221fe54d3c91232e6679d0f" + "url": "https://github.com/joomla-framework/application.git", + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/input/zipball/b6098276043e2d627221fe54d3c91232e6679d0f", - "reference": "b6098276043e2d627221fe54d3c91232e6679d0f", + "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/f32371fc988356bbf052396dcfd782effdd74b6d", + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d", "shasum": "" }, "require": { - "joomla/filter": "~1.0", - "php": ">=5.3.10" + "joomla/input": "~1.2|~2.0", + "joomla/registry": "^1.4.5|~2.0", + "php": "^5.3.10|~7.0", + "psr/log": "~1.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "4.*", - "squizlabs/php_codesniffer": "1.*" + "joomla/coding-standards": "~2.0@alpha", + "joomla/event": "~1.2|~2.0", + "joomla/session": "^1.2.1|~2.0", + "joomla/test": "~1.1", + "joomla/uri": "~1.1", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, - "time": "2014-10-12T18:01:36+00:00", + "suggest": { + "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", + "joomla/uri": "To use AbstractWebApplication, install joomla/uri" + }, + "time": "2018-05-20T15:35:58+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -72,64 +86,73 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Input\\": "src/", - "Joomla\\Input\\Tests\\": "Tests/" + "Joomla\\Application\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], - "description": "Joomla Input Package", - "homepage": "https://github.com/joomla-framework/input", + "description": "Joomla Application Package", + "homepage": "https://github.com/joomla-framework/application", "keywords": [ + "application", "framework", - "input", "joomla" ] }, { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "version_normalized": "1.0.4.0", + "name": "joomla/archive", + "version": "1.1.5", + "version_normalized": "1.1.5.0", "source": { "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" + "url": "https://github.com/joomla-framework/archive.git", + "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", + "url": "https://github.com/gitapi/repos/joomla-framework/archive/zipball/2b5d645804c6af7c363716ba1956929f8b9665d3", + "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3", "shasum": "" }, + "require": { + "joomla/filesystem": "~1.3|~2.0", + "php": "^5.3.10|~7.0" + }, "require-dev": { - "phpunit/phpunit": "4.*" + "joomla/test": "~1.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "suggest": { + "ext-bz2": "To extract bzip2 compressed packages", + "ext-zip": "To extract zip compressed packages", + "ext-zlib": "To extract gzip or zip compressed packages" + }, + "time": "2017-06-12T11:32:11+00:00", + "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } }, - "time": "2014-11-20T16:49:30+00:00", - "type": "library", "installation-source": "dist", "autoload": { - "files": [ - "lib/password.php" - ] + "psr-4": { + "Joomla\\Archive\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } + "GPL-2.0+" ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", + "description": "Joomla Archive Package", + "homepage": "https://github.com/joomla-framework/archive", "keywords": [ - "hashing", - "password" + "archive", + "framework", + "joomla" ] }, { @@ -172,47 +195,105 @@ ] }, { - "name": "leafo/lessphp", - "version": "v0.5.0", - "version_normalized": "0.5.0.0", + "name": "joomla/data", + "version": "1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", - "url": "https://github.com/leafo/lessphp.git", - "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283" + "url": "https://github.com/joomla-framework/data.git", + "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/leafo/lessphp/zipball/0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", - "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", + "url": "https://github.com/gitapi/repos/joomla-framework/data/zipball/57ee292ba23307a6a6059e69b7b19ca5b624ab80", + "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80", "shasum": "" }, - "time": "2014-11-24T18:39:20+00:00", - "type": "library", + "require": { + "joomla/compat": "~1.0", + "joomla/registry": "~1.0", + "php": ">=5.3.10|>=7.0" + }, + "require-dev": { + "joomla/test": "~1.0", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2016-04-02T22:20:43+00:00", + "type": "joomla-package", "extra": { "branch-alias": { - "dev-master": "0.4.x-dev" + "dev-master": "1.x-dev" } }, "installation-source": "dist", "autoload": { - "classmap": [ - "lessc.inc.php" - ] + "psr-4": { + "Joomla\\Data\\": "src/", + "Joomla\\Data\\Tests\\": "Tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT", - "GPL-3.0" + "GPL-2.0+" ], - "authors": [ - { - "name": "Leaf Corcoran", - "email": "leafot@gmail.com", - "homepage": "http://leafo.net" + "description": "Joomla Data Package", + "homepage": "https://github.com/joomla-framework/data", + "keywords": [ + "data", + "framework", + "joomla" + ] + }, + { + "name": "joomla/di", + "version": "1.4.0", + "version_normalized": "1.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/joomla-framework/di.git", + "reference": "756c6eb4554b9007f69da66cf488a05308251ed8" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/joomla-framework/di/zipball/756c6eb4554b9007f69da66cf488a05308251ed8", + "reference": "756c6eb4554b9007f69da66cf488a05308251ed8", + "shasum": "" + }, + "require": { + "php": "^5.3.10|~7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2017-11-12T15:35:19+00:00", + "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Joomla\\DI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" ], - "description": "lessphp is a compiler for LESS written in PHP.", - "homepage": "http://leafo.net/lessphp/" + "description": "Joomla DI Package", + "homepage": "https://github.com/joomla-framework/di", + "keywords": [ + "container", + "dependency injection", + "di", + "framework", + "ioc", + "joomla" + ] }, { "name": "joomla/event", @@ -263,87 +344,32 @@ ] }, { - "name": "simplepie/simplepie", + "name": "joomla/filesystem", "version": "1.3.1", "version_normalized": "1.3.1.0", "source": { "type": "git", - "url": "https://github.com/simplepie/simplepie.git", - "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc" + "url": "https://github.com/joomla-framework/filesystem.git", + "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/simplepie/simplepie/zipball/ce53709778bc1e2e4deda1651b66e5081398d5cc", - "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc", + "url": "https://github.com/gitapi/repos/joomla-framework/filesystem/zipball/6e2840a82a3958cf8f23ae869e2292d812cfa5d3", + "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3", "shasum": "" }, "require": { - "php": ">=5.2.0" - }, - "time": "2012-10-30T17:54:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "SimplePie": "library" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ryan Parman", - "homepage": "http://ryanparman.com/", - "role": "Creator, alumnus developer" - }, - { - "name": "Geoffrey Sneddon", - "homepage": "http://gsnedders.com/", - "role": "Alumnus developer" - }, - { - "name": "Ryan McCue", - "email": "me@ryanmccue.info", - "homepage": "http://ryanmccue.info/", - "role": "Developer" - } - ], - "description": "A simple Atom/RSS parsing library for PHP", - "homepage": "http://simplepie.org/", - "keywords": [ - "atom", - "feeds", - "rss" - ] - }, - { - "name": "joomla/data", - "version": "1.2.0", - "version_normalized": "1.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/joomla-framework/data.git", - "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80" - }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/data/zipball/57ee292ba23307a6a6059e69b7b19ca5b624ab80", - "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80", - "shasum": "" - }, - "require": { - "joomla/compat": "~1.0", - "joomla/registry": "~1.0", - "php": ">=5.3.10|>=7.0" + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", + "paragonie/random_compat": "~1.0|~2.0", "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, - "time": "2016-04-02T22:20:43+00:00", + "suggest": { + "paragonie/random_compat": "Required to use Joomla\\Filesystem\\Path::isOwner()" + }, + "time": "2016-12-10T17:45:15+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -353,53 +379,49 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Data\\": "src/", - "Joomla\\Data\\Tests\\": "Tests/" + "Joomla\\Filesystem\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Data Package", - "homepage": "https://github.com/joomla-framework/data", + "description": "Joomla Filesystem Package", + "homepage": "https://github.com/joomla/joomla-framework-filesystem", "keywords": [ - "data", + "filesystem", "framework", "joomla" ] }, { - "name": "joomla/registry", - "version": "1.5.2", - "version_normalized": "1.5.2.0", + "name": "joomla/filter", + "version": "1.3.4", + "version_normalized": "1.3.4.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/registry.git", - "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a" + "url": "https://github.com/joomla-framework/filter.git", + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/registry/zipball/bd3592c6f0554a72811df52aeaea98c7815f6e5a", - "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a", + "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/6ec4c6020f7ef12c57a015410bdd11031620d952", + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952", "shasum": "" }, "require": { - "joomla/compat": "~1.0", - "joomla/utilities": "~1.0", - "php": ">=5.3.10|>=7.0", - "symfony/polyfill-php55": "~1.0" + "joomla/string": "~1.3|~2.0", + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*", - "symfony/yaml": "~2.0|~3.0" + "joomla/coding-standards": "~2.0@alpha", + "joomla/language": "~1.3", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { - "symfony/yaml": "Install symfony/yaml if you require YAML support." + "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." }, - "time": "2016-05-14T20:42:05+00:00", + "time": "2018-05-20T15:17:26+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -409,97 +431,96 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Registry\\": "src/" + "Joomla\\Filter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], - "description": "Joomla Registry Package", - "homepage": "https://github.com/joomla-framework/registry", + "description": "Joomla Filter Package", + "homepage": "https://github.com/joomla-framework/filter", "keywords": [ + "filter", "framework", - "joomla", - "registry" + "joomla" ] }, { - "name": "psr/log", - "version": "1.0.2", - "version_normalized": "1.0.2.0", + "name": "joomla/image", + "version": "1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "url": "https://github.com/joomla-framework/image.git", + "reference": "d5a76037add34f95e970e9d8c8a449feeb781286" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://github.com/gitapi/repos/joomla-framework/image/zipball/d5a76037add34f95e970e9d8c8a449feeb781286", + "reference": "d5a76037add34f95e970e9d8c8a449feeb781286", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-gd": "*", + "php": "^5.3.10|~7.0", + "psr/log": "~1.0" }, - "time": "2016-10-10T12:19:37+00:00", - "type": "library", + "require-dev": { + "joomla/test": "~1.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2017-06-28T14:14:15+00:00", + "type": "joomla-package", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Joomla\\Image\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } + "GPL-2.0+" ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Joomla Image Package", + "homepage": "https://github.com/joomla-framework/image", "keywords": [ - "log", - "psr", - "psr-3" + "framework", + "image", + "joomla" ] }, { - "name": "joomla/string", - "version": "1.4.1", - "version_normalized": "1.4.1.0", + "name": "joomla/input", + "version": "1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/string.git", - "reference": "66363d317e6c020f30a70265c129281c77c43ca0" + "url": "https://github.com/joomla-framework/input.git", + "reference": "b6098276043e2d627221fe54d3c91232e6679d0f" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/string/zipball/66363d317e6c020f30a70265c129281c77c43ca0", - "reference": "66363d317e6c020f30a70265c129281c77c43ca0", + "url": "https://github.com/gitapi/repos/joomla-framework/input/zipball/b6098276043e2d627221fe54d3c91232e6679d0f", + "reference": "b6098276043e2d627221fe54d3c91232e6679d0f", "shasum": "" }, "require": { - "php": "^5.3.10|~7.0" + "joomla/filter": "~1.0", + "php": ">=5.3.10" }, "require-dev": { "joomla/test": "~1.0", - "phpunit/phpunit": "~4.8|~5.0", + "phpunit/phpunit": "4.*", "squizlabs/php_codesniffer": "1.*" }, - "suggest": { - "ext-mbstring": "For improved processing" - }, - "time": "2016-12-10T18:13:42+00:00", + "time": "2014-10-12T18:01:36+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -509,62 +530,51 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\String\\": "src/" - }, - "files": [ - "src/phputf8/utf8.php", - "src/phputf8/ord.php", - "src/phputf8/str_ireplace.php", - "src/phputf8/str_pad.php", - "src/phputf8/str_split.php", - "src/phputf8/strcasecmp.php", - "src/phputf8/strcspn.php", - "src/phputf8/stristr.php", - "src/phputf8/strrev.php", - "src/phputf8/strspn.php", - "src/phputf8/trim.php", - "src/phputf8/ucfirst.php", - "src/phputf8/ucwords.php", - "src/phputf8/utils/ascii.php", - "src/phputf8/utils/validation.php" - ] + "Joomla\\Input\\": "src/", + "Joomla\\Input\\Tests\\": "Tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla String Package", - "homepage": "https://github.com/joomla-framework/string", + "description": "Joomla Input Package", + "homepage": "https://github.com/joomla-framework/input", "keywords": [ "framework", - "joomla", - "string" + "input", + "joomla" ] }, { - "name": "joomla/utilities", - "version": "1.4.1", - "version_normalized": "1.4.1.0", + "name": "joomla/ldap", + "version": "1.3.0", + "version_normalized": "1.3.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/utilities.git", - "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6" + "url": "https://github.com/joomla-framework/ldap.git", + "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/utilities/zipball/8913ca02aad7b929e0d52d78fd5a6961070bdbc6", - "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6", + "url": "https://github.com/gitapi/repos/joomla-framework/ldap/zipball/4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", + "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", "shasum": "" }, "require": { - "joomla/string": "~1.3", + "ext-ldap": "*", "php": "^5.3.10|~7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*" + "joomla/registry": "^1.4.5|~2.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*", + "symfony/polyfill-php56": "~1.0" }, - "time": "2016-12-10T17:09:33+00:00", + "suggest": { + "symfony/polyfill-php56": "If using PHP 5.5 or earlier to use ldap_escape() function" + }, + "time": "2017-10-21T15:41:55+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -574,150 +584,155 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Utilities\\": "src/" + "Joomla\\Ldap\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Utilities Package", - "homepage": "https://github.com/joomla-framework/utilities", + "description": "Joomla LDAP Package", + "homepage": "https://github.com/joomla-framework/ldap", "keywords": [ "framework", "joomla", - "utilities" + "ldap" ] }, { - "name": "joomla/session", - "version": "1.3.3", - "version_normalized": "1.3.3.0", - "target-dir": "Joomla/Session", + "name": "joomla/registry", + "version": "1.5.2", + "version_normalized": "1.5.2.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/session.git", - "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0" + "url": "https://github.com/joomla-framework/registry.git", + "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/session/zipball/1fb5df818998305fa5d4eaf18e530a388e69edc0", - "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0", + "url": "https://github.com/gitapi/repos/joomla-framework/registry/zipball/bd3592c6f0554a72811df52aeaea98c7815f6e5a", + "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a", "shasum": "" }, "require": { - "joomla/event": "~1.1", - "joomla/filter": "~1.0", - "paragonie/random_compat": "~1.0|~2.0", - "php": "^5.3.10|~7.0" + "joomla/compat": "~1.0", + "joomla/utilities": "~1.0", + "php": ">=5.3.10|>=7.0", + "symfony/polyfill-php55": "~1.0" }, "require-dev": { - "joomla/database": "~1.0", "joomla/test": "~1.0", - "phpunit/dbunit": "~1.3", "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*" + "squizlabs/php_codesniffer": "1.*", + "symfony/yaml": "~2.0|~3.0" }, "suggest": { - "joomla/database": "Install joomla/database if you want to use Database session storage." + "symfony/yaml": "Install symfony/yaml if you require YAML support." }, - "time": "2016-12-21T21:08:20+00:00", + "time": "2016-05-14T20:42:05+00:00", "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "installation-source": "dist", "autoload": { - "psr-0": { - "Joomla\\Session": "" + "psr-4": { + "Joomla\\Registry\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Session Package", - "homepage": "https://github.com/joomla-framework/session", + "description": "Joomla Registry Package", + "homepage": "https://github.com/joomla-framework/registry", "keywords": [ "framework", "joomla", - "session" + "registry" ] }, { - "name": "paragonie/random_compat", - "version": "v1.4.2", - "version_normalized": "1.4.2.0", + "name": "joomla/session", + "version": "1.3.3", + "version_normalized": "1.3.3.0", + "target-dir": "Joomla/Session", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66" + "url": "https://github.com/joomla-framework/session.git", + "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66", - "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66", + "url": "https://github.com/gitapi/repos/joomla-framework/session/zipball/1fb5df818998305fa5d4eaf18e530a388e69edc0", + "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0", "shasum": "" }, "require": { - "php": ">=5.2.0" + "joomla/event": "~1.1", + "joomla/filter": "~1.0", + "paragonie/random_compat": "~1.0|~2.0", + "php": "^5.3.10|~7.0" }, "require-dev": { - "phpunit/phpunit": "4.*|5.*" + "joomla/database": "~1.0", + "joomla/test": "~1.0", + "phpunit/dbunit": "~1.3", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "1.*" }, "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "joomla/database": "Install joomla/database if you want to use Database session storage." }, - "time": "2017-03-13T16:22:52+00:00", - "type": "library", + "time": "2016-12-21T21:08:20+00:00", + "type": "joomla-package", "installation-source": "dist", "autoload": { - "files": [ - "lib/random.php" - ] + "psr-0": { + "Joomla\\Session": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } + "GPL-2.0+" ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "Joomla Session Package", + "homepage": "https://github.com/joomla-framework/session", "keywords": [ - "csprng", - "pseudorandom", - "random" + "framework", + "joomla", + "session" ] }, { - "name": "joomla/filesystem", - "version": "1.3.1", - "version_normalized": "1.3.1.0", + "name": "joomla/string", + "version": "1.4.1", + "version_normalized": "1.4.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/filesystem.git", - "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3" + "url": "https://github.com/joomla-framework/string.git", + "reference": "66363d317e6c020f30a70265c129281c77c43ca0" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filesystem/zipball/6e2840a82a3958cf8f23ae869e2292d812cfa5d3", - "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3", + "url": "https://github.com/gitapi/repos/joomla-framework/string/zipball/66363d317e6c020f30a70265c129281c77c43ca0", + "reference": "66363d317e6c020f30a70265c129281c77c43ca0", "shasum": "" }, "require": { "php": "^5.3.10|~7.0" }, "require-dev": { - "paragonie/random_compat": "~1.0|~2.0", + "joomla/test": "~1.0", "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, "suggest": { - "paragonie/random_compat": "Required to use Joomla\\Filesystem\\Path::isOwner()" + "ext-mbstring": "For improved processing" }, - "time": "2016-12-10T17:45:15+00:00", + "time": "2016-12-10T18:13:42+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -727,101 +742,101 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Filesystem\\": "src/" - } + "Joomla\\String\\": "src/" + }, + "files": [ + "src/phputf8/utf8.php", + "src/phputf8/ord.php", + "src/phputf8/str_ireplace.php", + "src/phputf8/str_pad.php", + "src/phputf8/str_split.php", + "src/phputf8/strcasecmp.php", + "src/phputf8/strcspn.php", + "src/phputf8/stristr.php", + "src/phputf8/strrev.php", + "src/phputf8/strspn.php", + "src/phputf8/trim.php", + "src/phputf8/ucfirst.php", + "src/phputf8/ucwords.php", + "src/phputf8/utils/ascii.php", + "src/phputf8/utils/validation.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Filesystem Package", - "homepage": "https://github.com/joomla/joomla-framework-filesystem", + "description": "Joomla String Package", + "homepage": "https://github.com/joomla-framework/string", "keywords": [ - "filesystem", "framework", - "joomla" + "joomla", + "string" ] }, { - "name": "joomla/archive", - "version": "1.1.5", - "version_normalized": "1.1.5.0", + "name": "joomla/uri", + "version": "1.1.1", + "version_normalized": "1.1.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/archive.git", - "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3" + "url": "https://github.com/joomla-framework/uri.git", + "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/archive/zipball/2b5d645804c6af7c363716ba1956929f8b9665d3", - "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3", + "url": "https://github.com/gitapi/repos/joomla-framework/uri/zipball/980e532e4235bb8f1ada15b28822abbeb171da3f", + "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f", "shasum": "" }, "require": { - "joomla/filesystem": "~1.3|~2.0", - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "suggest": { - "ext-bz2": "To extract bzip2 compressed packages", - "ext-zip": "To extract zip compressed packages", - "ext-zlib": "To extract gzip or zip compressed packages" + "php": ">=5.3.10" }, - "time": "2017-06-12T11:32:11+00:00", + "time": "2014-02-09T02:57:17+00:00", "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Archive\\": "src/" + "Joomla\\Uri\\": "src/", + "Joomla\\Uri\\Tests\\": "Tests/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Archive Package", - "homepage": "https://github.com/joomla-framework/archive", + "description": "Joomla Uri Package", + "homepage": "https://github.com/joomla-framework/uri", "keywords": [ - "archive", "framework", - "joomla" + "joomla", + "uri" ] }, { - "name": "joomla/image", - "version": "1.4.0", - "version_normalized": "1.4.0.0", + "name": "joomla/utilities", + "version": "1.4.1", + "version_normalized": "1.4.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/image.git", - "reference": "d5a76037add34f95e970e9d8c8a449feeb781286" + "url": "https://github.com/joomla-framework/utilities.git", + "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/image/zipball/d5a76037add34f95e970e9d8c8a449feeb781286", - "reference": "d5a76037add34f95e970e9d8c8a449feeb781286", + "url": "https://github.com/gitapi/repos/joomla-framework/utilities/zipball/8913ca02aad7b929e0d52d78fd5a6961070bdbc6", + "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6", "shasum": "" }, "require": { - "ext-gd": "*", - "php": "^5.3.10|~7.0", - "psr/log": "~1.0" + "joomla/string": "~1.3", + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, - "time": "2017-06-28T14:14:15+00:00", + "time": "2016-12-10T17:09:33+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -831,265 +846,379 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Image\\": "src/" + "Joomla\\Utilities\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Image Package", - "homepage": "https://github.com/joomla-framework/image", + "description": "Joomla Utilities Package", + "homepage": "https://github.com/joomla-framework/utilities", "keywords": [ "framework", - "image", - "joomla" + "joomla", + "utilities" ] }, { - "name": "joomla/filter", - "version": "1.3.3", - "version_normalized": "1.3.3.0", + "name": "leafo/lessphp", + "version": "v0.5.0", + "version_normalized": "0.5.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/filter.git", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" + "url": "https://github.com/leafo/lessphp.git", + "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", + "url": "https://github.com/gitapi/repos/leafo/lessphp/zipball/0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", + "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", "shasum": "" }, - "require": { - "joomla/string": "~1.3|~2.0", - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "joomla/language": "~1.3", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "suggest": { - "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." - }, - "time": "2017-07-04T15:07:30+00:00", - "type": "joomla-package", + "time": "2014-11-24T18:39:20+00:00", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "0.4.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Filter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", + "classmap": [ + "lessc.inc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT", + "GPL-3.0" ], - "description": "Joomla Filter Package", - "homepage": "https://github.com/joomla-framework/filter", - "keywords": [ - "filter", - "framework", - "joomla" - ] + "authors": [ + { + "name": "Leaf Corcoran", + "email": "leafot@gmail.com", + "homepage": "http://leafo.net" + } + ], + "description": "lessphp is a compiler for LESS written in PHP.", + "homepage": "http://leafo.net/lessphp/" }, { - "name": "joomla/application", - "version": "1.8.1", - "version_normalized": "1.8.1.0", + "name": "paragonie/random_compat", + "version": "v1.4.2", + "version_normalized": "1.4.2.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/application.git", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "url": "https://github.com/gitapi/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66", + "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66", "shasum": "" }, "require": { - "joomla/input": "~1.2|~2.0", - "joomla/registry": "^1.4.5|~2.0", - "php": "^5.3.10|~7.0", - "psr/log": "~1.0" + "php": ">=5.2.0" }, "require-dev": { - "joomla/event": "~1.2|~2.0", - "joomla/session": "^1.2.1|~2.0", - "joomla/test": "~1.1", - "joomla/uri": "~1.1", - "phpunit/phpunit": "~4.8|>=5.0 <5.4", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "4.*|5.*" }, "suggest": { - "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", - "joomla/uri": "To use AbstractWebApplication, install joomla/uri" + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, - "time": "2017-07-14T12:54:12+00:00", - "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" + "time": "2017-03-13T16:22:52+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ] + }, + { + "name": "paragonie/sodium_compat", + "version": "v1.3.1", + "version_normalized": "1.3.1.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "6b3a59ef127445564a00e261eb1e960b6292f494" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/paragonie/sodium_compat/zipball/6b3a59ef127445564a00e261eb1e960b6292f494", + "reference": "6b3a59ef127445564a00e261eb1e960b6292f494", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "^1|^2", + "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7" + }, + "require-dev": { + "phpunit/phpunit": "^3|^4|^5" + }, + "suggest": { + "ext-libsodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." }, + "time": "2017-09-29T21:27:52+00:00", + "type": "library", "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Application\\": "src/" - } + "files": [ + "autoload.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "ISC" ], - "description": "Joomla Application Package", - "homepage": "https://github.com/joomla-framework/application", + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + }, + { + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" + } + ], + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", "keywords": [ - "application", - "framework", - "joomla" + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" ] }, { - "name": "joomla/ldap", - "version": "1.3.0", - "version_normalized": "1.3.0.0", + "name": "phpmailer/phpmailer", + "version": "v5.2.26", + "version_normalized": "5.2.26.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/ldap.git", - "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978" + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "70362997bda4376378be7d92d81e2200550923f7" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/ldap/zipball/4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", - "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", + "url": "https://github.com/gitapi/repos/PHPMailer/PHPMailer/zipball/70362997bda4376378be7d92d81e2200550923f7", + "reference": "70362997bda4376378be7d92d81e2200550923f7", "shasum": "" }, "require": { - "ext-ldap": "*", - "php": "^5.3.10|~7.0" + "ext-ctype": "*", + "php": ">=5.0.0" }, "require-dev": { - "joomla/registry": "^1.4.5|~2.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*", - "symfony/polyfill-php56": "~1.0" + "doctrine/annotations": "1.2.*", + "jms/serializer": "0.16.*", + "phpdocumentor/phpdocumentor": "2.*", + "phpunit/phpunit": "4.8.*", + "symfony/debug": "2.8.*", + "symfony/filesystem": "2.8.*", + "symfony/translation": "2.8.*", + "symfony/yaml": "2.8.*", + "zendframework/zend-cache": "2.5.1", + "zendframework/zend-config": "2.5.1", + "zendframework/zend-eventmanager": "2.5.1", + "zendframework/zend-filter": "2.5.1", + "zendframework/zend-i18n": "2.5.1", + "zendframework/zend-json": "2.5.1", + "zendframework/zend-math": "2.5.1", + "zendframework/zend-serializer": "2.5.*", + "zendframework/zend-servicemanager": "2.5.*", + "zendframework/zend-stdlib": "2.5.1" }, "suggest": { - "symfony/polyfill-php56": "If using PHP 5.5 or earlier to use ldap_escape() function" + "league/oauth2-google": "Needed for Google XOAUTH2 authentication" }, - "time": "2017-10-21T15:41:55+00:00", - "type": "joomla-package", + "time": "2017-11-04T09:26:05+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "class.phpmailer.php", + "class.phpmaileroauth.php", + "class.phpmaileroauthgoogle.php", + "class.smtp.php", + "class.pop3.php", + "extras/EasyPeasyICS.php", + "extras/ntlm_sasl_client.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP" + }, + { + "name": "psr/log", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-10-10T12:19:37+00:00", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "1.0.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Ldap\\": "src/" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT" ], - "description": "Joomla LDAP Package", - "homepage": "https://github.com/joomla-framework/ldap", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "framework", - "joomla", - "ldap" + "log", + "psr", + "psr-3" ] }, { - "name": "paragonie/sodium_compat", - "version": "v1.3.1", + "name": "simplepie/simplepie", + "version": "1.3.1", "version_normalized": "1.3.1.0", "source": { "type": "git", - "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "6b3a59ef127445564a00e261eb1e960b6292f494" + "url": "https://github.com/simplepie/simplepie.git", + "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/paragonie/sodium_compat/zipball/6b3a59ef127445564a00e261eb1e960b6292f494", - "reference": "6b3a59ef127445564a00e261eb1e960b6292f494", + "url": "https://github.com/gitapi/repos/simplepie/simplepie/zipball/ce53709778bc1e2e4deda1651b66e5081398d5cc", + "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc", "shasum": "" }, "require": { - "paragonie/random_compat": "^1|^2", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7" - }, - "require-dev": { - "phpunit/phpunit": "^3|^4|^5" - }, - "suggest": { - "ext-libsodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + "php": ">=5.2.0" }, - "time": "2017-09-29T21:27:52+00:00", + "time": "2012-10-30T17:54:03+00:00", "type": "library", "installation-source": "dist", "autoload": { - "files": [ - "autoload.php" - ] + "psr-0": { + "SimplePie": "library" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com" + "name": "Ryan Parman", + "homepage": "http://ryanparman.com/", + "role": "Creator, alumnus developer" }, { - "name": "Frank Denis", - "email": "jedisct1@pureftpd.org" + "name": "Geoffrey Sneddon", + "homepage": "http://gsnedders.com/", + "role": "Alumnus developer" + }, + { + "name": "Ryan McCue", + "email": "me@ryanmccue.info", + "homepage": "http://ryanmccue.info/", + "role": "Developer" } ], - "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "description": "A simple Atom/RSS parsing library for PHP", + "homepage": "http://simplepie.org/", "keywords": [ - "Authentication", - "BLAKE2b", - "ChaCha20", - "ChaCha20-Poly1305", - "Chapoly", - "Curve25519", - "Ed25519", - "EdDSA", - "Edwards-curve Digital Signature Algorithm", - "Elliptic Curve Diffie-Hellman", - "Poly1305", - "Pure-PHP cryptography", - "RFC 7748", - "RFC 8032", - "Salpoly", - "Salsa20", - "X25519", - "XChaCha20-Poly1305", - "XSalsa20-Poly1305", - "Xchacha20", - "Xsalsa20", - "aead", - "cryptography", - "ecdh", - "elliptic curve", - "elliptic curve cryptography", - "encryption", - "libsodium", - "php", - "public-key cryptography", - "secret-key cryptography", - "side-channel resistant" + "atom", + "feeds", + "rss" ] }, { @@ -1151,22 +1280,23 @@ ] }, { - "name": "symfony/polyfill-util", + "name": "symfony/polyfill-php56", "version": "v1.6.0", "version_normalized": "1.6.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176" + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "265fc96795492430762c29be291a371494ba3a5b" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176", - "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b", + "reference": "265fc96795492430762c29be291a371494ba3a5b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" }, "time": "2017-10-11T12:05:26+00:00", "type": "library", @@ -1178,8 +1308,11 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1195,45 +1328,44 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony utilities for portability of PHP codes", + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "compat", "compatibility", "polyfill", + "portable", "shim" ] }, { - "name": "symfony/polyfill-php56", - "version": "v1.6.0", - "version_normalized": "1.6.0.0", + "name": "symfony/polyfill-php73", + "version": "v1.8.0", + "version_normalized": "1.8.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "265fc96795492430762c29be291a371494ba3a5b" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9841f6fc047725a8286ea986018355bbc9200383" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b", - "reference": "265fc96795492430762c29be291a371494ba3a5b", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php73/zipball/9841f6fc047725a8286ea986018355bbc9200383", + "reference": "9841f6fc047725a8286ea986018355bbc9200383", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" + "php": ">=5.3.3" }, - "time": "2017-10-11T12:05:26+00:00", + "time": "2018-04-26T06:22:38+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.8-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" + "Symfony\\Polyfill\\Php73\\": "" }, "files": [ "bootstrap.php" @@ -1253,7 +1385,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -1263,83 +1395,58 @@ ] }, { - "name": "phpmailer/phpmailer", - "version": "v5.2.26", - "version_normalized": "5.2.26.0", + "name": "symfony/polyfill-util", + "version": "v1.6.0", + "version_normalized": "1.6.0.0", "source": { "type": "git", - "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "70362997bda4376378be7d92d81e2200550923f7" + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/PHPMailer/PHPMailer/zipball/70362997bda4376378be7d92d81e2200550923f7", - "reference": "70362997bda4376378be7d92d81e2200550923f7", + "url": "https://github.com/gitapi/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176", + "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176", "shasum": "" }, "require": { - "ext-ctype": "*", - "php": ">=5.0.0" - }, - "require-dev": { - "doctrine/annotations": "1.2.*", - "jms/serializer": "0.16.*", - "phpdocumentor/phpdocumentor": "2.*", - "phpunit/phpunit": "4.8.*", - "symfony/debug": "2.8.*", - "symfony/filesystem": "2.8.*", - "symfony/translation": "2.8.*", - "symfony/yaml": "2.8.*", - "zendframework/zend-cache": "2.5.1", - "zendframework/zend-config": "2.5.1", - "zendframework/zend-eventmanager": "2.5.1", - "zendframework/zend-filter": "2.5.1", - "zendframework/zend-i18n": "2.5.1", - "zendframework/zend-json": "2.5.1", - "zendframework/zend-math": "2.5.1", - "zendframework/zend-serializer": "2.5.*", - "zendframework/zend-servicemanager": "2.5.*", - "zendframework/zend-stdlib": "2.5.1" - }, - "suggest": { - "league/oauth2-google": "Needed for Google XOAUTH2 authentication" + "php": ">=5.3.3" }, - "time": "2017-11-04T09:26:05+00:00", + "time": "2017-10-11T12:05:26+00:00", "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, "installation-source": "dist", "autoload": { - "classmap": [ - "class.phpmailer.php", - "class.phpmaileroauth.php", - "class.phpmaileroauthgoogle.php", - "class.smtp.php", - "class.pop3.php", - "extras/EasyPeasyICS.php", - "extras/ntlm_sasl_client.php" - ] + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { - "name": "Jim Jagielski", - "email": "jimjag@gmail.com" - }, - { - "name": "Marcus Bointon", - "email": "phpmailer@synchromedia.co.uk" - }, - { - "name": "Andy Prevost", - "email": "codeworxtech@users.sourceforge.net" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Brent R. Matzelle" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHPMailer is a full-featured email creation and transfer class for PHP" + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ] }, { "name": "symfony/yaml", @@ -1391,55 +1498,5 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com" - }, - { - "name": "joomla/di", - "version": "1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/joomla-framework/di.git", - "reference": "756c6eb4554b9007f69da66cf488a05308251ed8" - }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/di/zipball/756c6eb4554b9007f69da66cf488a05308251ed8", - "reference": "756c6eb4554b9007f69da66cf488a05308251ed8", - "shasum": "" - }, - "require": { - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "time": "2017-11-12T15:35:19+00:00", - "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Joomla\\DI\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "description": "Joomla DI Package", - "homepage": "https://github.com/joomla-framework/di", - "keywords": [ - "container", - "dependency injection", - "di", - "framework", - "ioc", - "joomla" - ] } ] diff --git a/libraries/vendor/joomla/application/src/AbstractApplication.php b/libraries/vendor/joomla/application/src/AbstractApplication.php index f01ca5fc75d59..7eef7610e3df9 100644 --- a/libraries/vendor/joomla/application/src/AbstractApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ diff --git a/libraries/vendor/joomla/application/src/AbstractCliApplication.php b/libraries/vendor/joomla/application/src/AbstractCliApplication.php index ef2aa64264516..04998c7f4a772 100644 --- a/libraries/vendor/joomla/application/src/AbstractCliApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractCliApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,8 @@ /** * Base class for a Joomla! command line application. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ abstract class AbstractCliApplication extends AbstractApplication { diff --git a/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php b/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php index 7a7f479266ae6..d09ec74d32bf7 100644 --- a/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -908,7 +908,7 @@ protected function pcntlSignal($signal , $handler, $restart = true) /** * Method to wait on or return the status of a forked child. * - * @param integer &$status Status information. + * @param integer $status Status information. * @param integer $options If wait3 is available on your system (mostly BSD-style systems), * you can provide the optional options parameter. * diff --git a/libraries/vendor/joomla/application/src/AbstractWebApplication.php b/libraries/vendor/joomla/application/src/AbstractWebApplication.php index 5e703d4a5b996..6453ed437269c 100644 --- a/libraries/vendor/joomla/application/src/AbstractWebApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractWebApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -36,6 +36,14 @@ abstract class AbstractWebApplication extends AbstractApplication */ public $mimeType = 'text/html'; + /** + * HTTP protocol version. + * + * @var string + * @since 1.9.0 + */ + public $httpVersion = '1.1'; + /** * The body modified date for response headers. * @@ -69,74 +77,74 @@ abstract class AbstractWebApplication extends AbstractApplication private $session; /** - * A map of integer HTTP 1.1 response codes to the full HTTP Status for the headers. + * A map of integer HTTP response codes to the full HTTP Status for the headers. * * @var array * @since 1.6.0 * @link https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml */ private $responseMap = array( - 100 => 'HTTP/1.1 100 Continue', - 101 => 'HTTP/1.1 101 Switching Protocols', - 102 => 'HTTP/1.1 102 Processing', - 200 => 'HTTP/1.1 200 OK', - 201 => 'HTTP/1.1 201 Created', - 202 => 'HTTP/1.1 202 Accepted', - 203 => 'HTTP/1.1 203 Non-Authoritative Information', - 204 => 'HTTP/1.1 204 No Content', - 205 => 'HTTP/1.1 205 Reset Content', - 206 => 'HTTP/1.1 206 Partial Content', - 207 => 'HTTP/1.1 207 Multi-Status', - 208 => 'HTTP/1.1 208 Already Reported', - 226 => 'HTTP/1.1 226 IM Used', - 300 => 'HTTP/1.1 300 Multiple Choices', - 301 => 'HTTP/1.1 301 Moved Permanently', - 302 => 'HTTP/1.1 302 Found', - 303 => 'HTTP/1.1 303 See other', - 304 => 'HTTP/1.1 304 Not Modified', - 305 => 'HTTP/1.1 305 Use Proxy', - 306 => 'HTTP/1.1 306 (Unused)', - 307 => 'HTTP/1.1 307 Temporary Redirect', - 308 => 'HTTP/1.1 308 Permanent Redirect', - 400 => 'HTTP/1.1 400 Bad Request', - 401 => 'HTTP/1.1 401 Unauthorized', - 402 => 'HTTP/1.1 402 Payment Required', - 403 => 'HTTP/1.1 403 Forbidden', - 404 => 'HTTP/1.1 404 Not Found', - 405 => 'HTTP/1.1 405 Method Not Allowed', - 406 => 'HTTP/1.1 406 Not Acceptable', - 407 => 'HTTP/1.1 407 Proxy Authentication Required', - 408 => 'HTTP/1.1 408 Request Timeout', - 409 => 'HTTP/1.1 409 Conflict', - 410 => 'HTTP/1.1 410 Gone', - 411 => 'HTTP/1.1 411 Length Required', - 412 => 'HTTP/1.1 412 Precondition Failed', - 413 => 'HTTP/1.1 413 Payload Too Large', - 414 => 'HTTP/1.1 414 URI Too Long', - 415 => 'HTTP/1.1 415 Unsupported Media Type', - 416 => 'HTTP/1.1 416 Range Not Satisfiable', - 417 => 'HTTP/1.1 417 Expectation Failed', - 418 => 'HTTP/1.1 418 I\'m a teapot', - 421 => 'HTTP/1.1 421 Misdirected Request', - 422 => 'HTTP/1.1 422 Unprocessable Entity', - 423 => 'HTTP/1.1 423 Locked', - 424 => 'HTTP/1.1 424 Failed Dependency', - 426 => 'HTTP/1.1 426 Upgrade Required', - 428 => 'HTTP/1.1 428 Precondition Required', - 429 => 'HTTP/1.1 429 Too Many Requests', - 431 => 'HTTP/1.1 431 Request Header Fields Too Large', - 451 => 'HTTP/1.1 451 Unavailable For Legal Reasons', - 500 => 'HTTP/1.1 500 Internal Server Error', - 501 => 'HTTP/1.1 501 Not Implemented', - 502 => 'HTTP/1.1 502 Bad Gateway', - 503 => 'HTTP/1.1 503 Service Unavailable', - 504 => 'HTTP/1.1 504 Gateway Timeout', - 505 => 'HTTP/1.1 505 HTTP Version Not Supported', - 506 => 'HTTP/1.1 506 Variant Also Negotiates', - 507 => 'HTTP/1.1 507 Insufficient Storage', - 508 => 'HTTP/1.1 508 Loop Detected', - 510 => 'HTTP/1.1 510 Not Extended', - 511 => 'HTTP/1.1 511 Network Authentication Required', + 100 => 'HTTP/{version} 100 Continue', + 101 => 'HTTP/{version} 101 Switching Protocols', + 102 => 'HTTP/{version} 102 Processing', + 200 => 'HTTP/{version} 200 OK', + 201 => 'HTTP/{version} 201 Created', + 202 => 'HTTP/{version} 202 Accepted', + 203 => 'HTTP/{version} 203 Non-Authoritative Information', + 204 => 'HTTP/{version} 204 No Content', + 205 => 'HTTP/{version} 205 Reset Content', + 206 => 'HTTP/{version} 206 Partial Content', + 207 => 'HTTP/{version} 207 Multi-Status', + 208 => 'HTTP/{version} 208 Already Reported', + 226 => 'HTTP/{version} 226 IM Used', + 300 => 'HTTP/{version} 300 Multiple Choices', + 301 => 'HTTP/{version} 301 Moved Permanently', + 302 => 'HTTP/{version} 302 Found', + 303 => 'HTTP/{version} 303 See other', + 304 => 'HTTP/{version} 304 Not Modified', + 305 => 'HTTP/{version} 305 Use Proxy', + 306 => 'HTTP/{version} 306 (Unused)', + 307 => 'HTTP/{version} 307 Temporary Redirect', + 308 => 'HTTP/{version} 308 Permanent Redirect', + 400 => 'HTTP/{version} 400 Bad Request', + 401 => 'HTTP/{version} 401 Unauthorized', + 402 => 'HTTP/{version} 402 Payment Required', + 403 => 'HTTP/{version} 403 Forbidden', + 404 => 'HTTP/{version} 404 Not Found', + 405 => 'HTTP/{version} 405 Method Not Allowed', + 406 => 'HTTP/{version} 406 Not Acceptable', + 407 => 'HTTP/{version} 407 Proxy Authentication Required', + 408 => 'HTTP/{version} 408 Request Timeout', + 409 => 'HTTP/{version} 409 Conflict', + 410 => 'HTTP/{version} 410 Gone', + 411 => 'HTTP/{version} 411 Length Required', + 412 => 'HTTP/{version} 412 Precondition Failed', + 413 => 'HTTP/{version} 413 Payload Too Large', + 414 => 'HTTP/{version} 414 URI Too Long', + 415 => 'HTTP/{version} 415 Unsupported Media Type', + 416 => 'HTTP/{version} 416 Range Not Satisfiable', + 417 => 'HTTP/{version} 417 Expectation Failed', + 418 => 'HTTP/{version} 418 I\'m a teapot', + 421 => 'HTTP/{version} 421 Misdirected Request', + 422 => 'HTTP/{version} 422 Unprocessable Entity', + 423 => 'HTTP/{version} 423 Locked', + 424 => 'HTTP/{version} 424 Failed Dependency', + 426 => 'HTTP/{version} 426 Upgrade Required', + 428 => 'HTTP/{version} 428 Precondition Required', + 429 => 'HTTP/{version} 429 Too Many Requests', + 431 => 'HTTP/{version} 431 Request Header Fields Too Large', + 451 => 'HTTP/{version} 451 Unavailable For Legal Reasons', + 500 => 'HTTP/{version} 500 Internal Server Error', + 501 => 'HTTP/{version} 501 Not Implemented', + 502 => 'HTTP/{version} 502 Bad Gateway', + 503 => 'HTTP/{version} 503 Service Unavailable', + 504 => 'HTTP/{version} 504 Gateway Timeout', + 505 => 'HTTP/{version} 505 HTTP Version Not Supported', + 506 => 'HTTP/{version} 506 Variant Also Negotiates', + 507 => 'HTTP/{version} 507 Insufficient Storage', + 508 => 'HTTP/{version} 508 Loop Detected', + 510 => 'HTTP/{version} 510 Not Extended', + 511 => 'HTTP/{version} 511 Network Authentication Required', ); /** @@ -262,6 +270,7 @@ protected function compress() // Set the encoding headers. $this->setHeader('Content-Encoding', $encoding); + $this->setHeader('Vary', 'Accept-Encoding'); $this->setHeader('X-Content-Encoded-By', 'Joomla'); // Replace the output with the encoded data. @@ -325,7 +334,7 @@ protected function respond() * sent this will be accomplished using a JavaScript statement. * * @param string $url The URL to redirect to. Can only be http/https URL - * @param integer $status The HTTP 1.1 status code to be provided. 303 is assumed by default. + * @param integer $status The HTTP status code to be provided. 303 is assumed by default. * * @return void * @@ -375,16 +384,16 @@ public function redirect($url, $status = 303) // If the headers have already been sent we need to send the redirect statement via JavaScript. if ($this->checkHeadersSent()) { - echo "\n"; + echo "\n"; } else { // We have to use a JavaScript redirect here because MSIE doesn't play nice with utf-8 URLs. - if (($this->client->engine == Web\WebClient::TRIDENT) && !$this::isAscii($url)) + if (($this->client->engine == Web\WebClient::TRIDENT) && !static::isAscii($url)) { $html = ''; $html .= ''; - $html .= ''; + $html .= ''; $html .= ''; echo $html; @@ -400,7 +409,7 @@ public function redirect($url, $status = 303) if (!is_int($status) && !$this->isRedirectState($status)) { - throw new \InvalidArgumentException('You have not supplied a valid HTTP 1.1 status code'); + throw new \InvalidArgumentException('You have not supplied a valid HTTP status code'); } // All other cases use the more efficient HTTP header for redirection. @@ -617,9 +626,9 @@ public function getSession() * * @param string|int $value The given status as int or string * - * @return string + * @return string * - * @since 1.8.0 + * @since 1.8.0 */ protected function getHttpStatusValue($value) { @@ -627,20 +636,24 @@ protected function getHttpStatusValue($value) if (array_key_exists($code, $this->responseMap)) { - return $this->responseMap[$code]; + $value = $this->responseMap[$code]; + } + else + { + $value = 'HTTP/{version} ' . $code; } - return 'HTTP/1.1 ' . $code; + return str_replace('{version}', $this->httpVersion, $value); } /** - * Check if the value is a valid HTTP 1.1 status code + * Check if the value is a valid HTTP status code * - * @param int $code The potential status code + * @param integer $code The potential status code * - * @return bool + * @return boolean * - * @since 1.8.1 + * @since 1.8.1 */ public function isValidHttpStatus($code) { @@ -752,11 +765,11 @@ protected function header($string, $replace = true, $code = null) /** * Checks if a state is a redirect state * - * @param integer $state The HTTP 1.1 status code. + * @param integer $state The HTTP status code. * - * @return bool + * @return boolean * - * @since 1.8.0 + * @since 1.8.0 */ protected function isRedirectState($state) { @@ -776,7 +789,14 @@ public function isSslConnection() { $serverSSLVar = $this->input->server->getString('HTTPS', ''); - return (!empty($serverSSLVar) && strtolower($serverSSLVar) != 'off'); + if (!empty($serverSSLVar) && strtolower($serverSSLVar) !== 'off') + { + return true; + } + + $serverForwarderProtoVar = $this->input->server->getString('HTTP_X_FORWARDED_PROTO', ''); + + return !empty($serverForwarderProtoVar) && strtolower($serverForwarderProtoVar) === 'https'; } /** diff --git a/libraries/vendor/joomla/application/src/Cli/CliInput.php b/libraries/vendor/joomla/application/src/Cli/CliInput.php index e4fe34dd0f123..1ae4e43e147c3 100644 --- a/libraries/vendor/joomla/application/src/Cli/CliInput.php +++ b/libraries/vendor/joomla/application/src/Cli/CliInput.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class CliInput * - * @since 1.6.0 + * @since 1.6.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class CliInput { diff --git a/libraries/vendor/joomla/application/src/Cli/CliOutput.php b/libraries/vendor/joomla/application/src/Cli/CliOutput.php index 93c62b9d8c117..46054545914ac 100644 --- a/libraries/vendor/joomla/application/src/Cli/CliOutput.php +++ b/libraries/vendor/joomla/application/src/Cli/CliOutput.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class CliOutput * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ abstract class CliOutput { diff --git a/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php b/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php index 4d8c29cbd786b..1d9f5703b01b8 100644 --- a/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php +++ b/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,7 @@ * Class ColorProcessor. * * @since 1.0 - * @deprecated 2.0 Use \Joomla\Application\Cli\Output\Processor\ColorProcessor + * @deprecated 2.0 Use the `joomla/console` package instead */ class ColorProcessor extends RealColorProcessor { diff --git a/libraries/vendor/joomla/application/src/Cli/ColorStyle.php b/libraries/vendor/joomla/application/src/Cli/ColorStyle.php index 831f3e892dbb0..e599c5dbebc85 100644 --- a/libraries/vendor/joomla/application/src/Cli/ColorStyle.php +++ b/libraries/vendor/joomla/application/src/Cli/ColorStyle.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class ColorStyle * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ final class ColorStyle { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php index 22e686cbb891a..b3521ea2378fb 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,8 @@ /** * Class ColorProcessor. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class ColorProcessor implements ProcessorInterface { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php index 995a058989c95..924543ac6c0db 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class ProcessorInterface. * - * @since 1.1.0 + * @since 1.1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ interface ProcessorInterface { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php b/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php index fc8b979e4a0d6..82ae6aa917318 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class Stdout. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class Stdout extends CliOutput { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Xml.php b/libraries/vendor/joomla/application/src/Cli/Output/Xml.php index 2350052245373..4666cb1a941bb 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Xml.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Xml.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class Xml. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class Xml extends CliOutput { diff --git a/libraries/vendor/joomla/application/src/Web/WebClient.php b/libraries/vendor/joomla/application/src/Web/WebClient.php index 1b64bbe20592e..80ec8aed52c2f 100644 --- a/libraries/vendor/joomla/application/src/Web/WebClient.php +++ b/libraries/vendor/joomla/application/src/Web/WebClient.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ diff --git a/libraries/vendor/joomla/filter/src/InputFilter.php b/libraries/vendor/joomla/filter/src/InputFilter.php index 6aa5368a3a3fe..3dccca490b728 100644 --- a/libraries/vendor/joomla/filter/src/InputFilter.php +++ b/libraries/vendor/joomla/filter/src/InputFilter.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Filter Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -113,6 +113,7 @@ class InputFilter 'bgsound', 'base', 'basefont', + 'canvas', 'embed', 'frame', 'frameset', @@ -172,7 +173,8 @@ class InputFilter * @since 1.0 */ public function __construct($tagsArray = array(), $attrArray = array(), $tagsMethod = self::TAGS_WHITELIST, $attrMethod = self::ATTR_WHITELIST, - $xssAuto = 1) + $xssAuto = 1 + ) { // Make sure user defined arrays are in lowercase $tagsArray = array_map('strtolower', (array) $tagsArray); @@ -598,49 +600,49 @@ protected function cleanTags($source) $attr = ''; // Is there a tag? If so it will certainly start with a '<'. - $tagOpen_start = StringHelper::strpos($source, '<'); + $tagOpenStart = StringHelper::strpos($source, '<'); - while ($tagOpen_start !== false) + while ($tagOpenStart !== false) { // Get some information about the tag we are processing - $preTag .= StringHelper::substr($postTag, 0, $tagOpen_start); - $postTag = StringHelper::substr($postTag, $tagOpen_start); + $preTag .= StringHelper::substr($postTag, 0, $tagOpenStart); + $postTag = StringHelper::substr($postTag, $tagOpenStart); $fromTagOpen = StringHelper::substr($postTag, 1); - $tagOpen_end = StringHelper::strpos($fromTagOpen, '>'); + $tagOpenEnd = StringHelper::strpos($fromTagOpen, '>'); // Check for mal-formed tag where we have a second '<' before the first '>' - $nextOpenTag = (StringHelper::strlen($postTag) > $tagOpen_start) ? StringHelper::strpos($postTag, '<', $tagOpen_start + 1) : false; + $nextOpenTag = (StringHelper::strlen($postTag) > $tagOpenStart) ? StringHelper::strpos($postTag, '<', $tagOpenStart + 1) : false; - if (($nextOpenTag !== false) && ($nextOpenTag < $tagOpen_end)) + if (($nextOpenTag !== false) && ($nextOpenTag < $tagOpenEnd)) { // At this point we have a mal-formed tag -- remove the offending open - $postTag = StringHelper::substr($postTag, 0, $tagOpen_start) . StringHelper::substr($postTag, $tagOpen_start + 1); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $postTag = StringHelper::substr($postTag, 0, $tagOpenStart) . StringHelper::substr($postTag, $tagOpenStart + 1); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Let's catch any non-terminated tags and skip over them - if ($tagOpen_end === false) + if ($tagOpenEnd === false) { - $postTag = StringHelper::substr($postTag, $tagOpen_start + 1); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $postTag = StringHelper::substr($postTag, $tagOpenStart + 1); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Do we have a nested tag? - $tagOpen_nested = StringHelper::strpos($fromTagOpen, '<'); + $tagOpenNested = StringHelper::strpos($fromTagOpen, '<'); - if (($tagOpen_nested !== false) && ($tagOpen_nested < $tagOpen_end)) + if (($tagOpenNested !== false) && ($tagOpenNested < $tagOpenEnd)) { - $preTag .= StringHelper::substr($postTag, 0, ($tagOpen_nested + 1)); - $postTag = StringHelper::substr($postTag, ($tagOpen_nested + 1)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $preTag .= StringHelper::substr($postTag, 0, ($tagOpenNested + 1)); + $postTag = StringHelper::substr($postTag, ($tagOpenNested + 1)); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Let's get some information about our tag and setup attribute pairs - $tagOpen_nested = (StringHelper::strpos($fromTagOpen, '<') + $tagOpen_start + 1); - $currentTag = StringHelper::substr($fromTagOpen, 0, $tagOpen_end); + $tagOpenNested = (StringHelper::strpos($fromTagOpen, '<') + $tagOpenStart + 1); + $currentTag = StringHelper::substr($fromTagOpen, 0, $tagOpenEnd); $tagLength = StringHelper::strlen($currentTag); $tagLeft = $currentTag; $attrSet = array(); @@ -671,7 +673,7 @@ protected function cleanTags($source) || ((in_array(strtolower($tagName), $this->tagBlacklist)) && ($this->xssAuto))) { $postTag = StringHelper::substr($postTag, ($tagLength + 2)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $tagOpenStart = StringHelper::strpos($postTag, '<'); // Strip tag continue; @@ -804,7 +806,7 @@ protected function cleanTags($source) // Find next tag's start and continue iteration $postTag = StringHelper::substr($postTag, ($tagLength + 2)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $tagOpenStart = StringHelper::strpos($postTag, '<'); } // Append any code after the end of tags and return @@ -844,8 +846,8 @@ protected function cleanAttributes($attrSet) $attrSubSet = explode('=', trim($attrSet[$i]), 2); // Take the last attribute in case there is an attribute with no value - $attrSubSet_0 = explode(' ', trim($attrSubSet[0])); - $attrSubSet[0] = array_pop($attrSubSet_0); + $attrSubSet0 = explode(' ', trim($attrSubSet[0])); + $attrSubSet[0] = array_pop($attrSubSet0); $attrSubSet[0] = strtolower($attrSubSet[0]); $quoteStyle = version_compare(PHP_VERSION, '5.4', '>=') ? ENT_QUOTES | ENT_HTML401 : ENT_QUOTES; @@ -855,12 +857,15 @@ protected function cleanAttributes($attrSet) $attrSubSet[0] = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $attrSubSet[0]); $attrSubSet[0] = preg_replace('/\s+/u', '', $attrSubSet[0]); - // Replace special blacklisted chars here + // Remove blacklisted chars from the attribute name foreach ($this->blacklistedChars as $blacklistedChar) { - $attrSubSet[0] = str_replace($blacklistedChar, '', $attrSubSet[0]); + $attrSubSet[0] = str_ireplace($blacklistedChar, '', $attrSubSet[0]); } + // Remove all symbols + $attrSubSet[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $attrSubSet[0]); + // Remove all "non-regular" attribute names // AND blacklisted attributes if ((!preg_match('/[a-z]*$/i', $attrSubSet[0])) @@ -876,6 +881,12 @@ protected function cleanAttributes($attrSet) continue; } + // Remove blacklisted chars from the attribute value + foreach ($this->blacklistedChars as $blacklistedChar) + { + $attrSubSet[1] = str_ireplace($blacklistedChar, '', $attrSubSet[1]); + } + // Trim leading and trailing spaces $attrSubSet[1] = trim($attrSubSet[1]); diff --git a/libraries/vendor/joomla/filter/src/OutputFilter.php b/libraries/vendor/joomla/filter/src/OutputFilter.php index c6ba9708deb0c..8ca20e4e8c87a 100644 --- a/libraries/vendor/joomla/filter/src/OutputFilter.php +++ b/libraries/vendor/joomla/filter/src/OutputFilter.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Filter Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -24,15 +24,15 @@ class OutputFilter * Object parameters that are non-string, array, object or start with underscore * will be converted * - * @param object &$mixed An object to be parsed - * @param integer $quote_style The optional quote style for the htmlspecialchars function - * @param mixed $exclude_keys An optional string single field name or array of field names not to be parsed (eg, for a textarea) + * @param object $mixed An object to be parsed + * @param integer $quoteStyle The optional quote style for the htmlspecialchars function + * @param mixed $excludeKeys An optional string single field name or array of field names not to be parsed (eg, for a textarea) * * @return void * * @since 1.0 */ - public static function objectHtmlSafe(&$mixed, $quote_style = ENT_QUOTES, $exclude_keys = '') + public static function objectHtmlSafe(&$mixed, $quoteStyle = ENT_QUOTES, $excludeKeys = '') { if (is_object($mixed)) { @@ -43,16 +43,16 @@ public static function objectHtmlSafe(&$mixed, $quote_style = ENT_QUOTES, $exclu continue; } - if (is_string($exclude_keys) && $k == $exclude_keys) + if (is_string($excludeKeys) && $k == $excludeKeys) { continue; } - elseif (is_array($exclude_keys) && in_array($k, $exclude_keys)) + elseif (is_array($excludeKeys) && in_array($k, $excludeKeys)) { continue; } - $mixed->$k = htmlspecialchars($v, $quote_style, 'UTF-8'); + $mixed->$k = htmlspecialchars($v, $quoteStyle, 'UTF-8'); } } } @@ -72,7 +72,7 @@ public static function linkXhtmlSafe($input) return preg_replace_callback( "#$regex#i", - function($m) + function ($m) { return preg_replace('#&(?!amp;)#', '&', $m[0]); }, @@ -163,7 +163,7 @@ public static function ampReplace($text) /** * Cleans text of all formatting and scripting code * - * @param string &$text Text to clean + * @param string $text Text to clean * * @return string Cleaned text. * diff --git a/libraries/vendor/symfony/polyfill-php73/LICENSE b/libraries/vendor/symfony/polyfill-php73/LICENSE new file mode 100644 index 0000000000000..ad399a798d6d2 --- /dev/null +++ b/libraries/vendor/symfony/polyfill-php73/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018 Fabien Potencier + +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/libraries/vendor/symfony/polyfill-php73/bootstrap.php b/libraries/vendor/symfony/polyfill-php73/bootstrap.php new file mode 100644 index 0000000000000..304b2deef2b7e --- /dev/null +++ b/libraries/vendor/symfony/polyfill-php73/bootstrap.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (PHP_VERSION_ID < 70300) { + if (!function_exists('is_countable')) { + function is_countable($var) { return is_array($var) || $var instanceof Countable || $var instanceof ResourceBundle || $var instanceof SimpleXmlElement; } + } +} diff --git a/media/system/js/core-uncompressed.js b/media/system/js/core-uncompressed.js index 6d2ec0439bc84..1cc1346694dd6 100644 --- a/media/system/js/core-uncompressed.js +++ b/media/system/js/core-uncompressed.js @@ -331,8 +331,9 @@ Joomla.editors.instances = Joomla.editors.instances || { messagesBox = document.createElement( 'div' ); // Message class - alertClass = (type == 'notice') ? 'alert-info' : 'alert-' + type; - alertClass = (type == 'message') ? 'alert-success' : alertClass; + alertClass = (type === 'notice') ? 'alert-info' : 'alert-' + type; + alertClass = (type === 'message') ? 'alert-success' : alertClass; + alertClass = (type === 'error') ? 'alert-error alert-danger' : alertClass; messagesBox.className = 'alert ' + alertClass; diff --git a/media/system/js/core.js b/media/system/js/core.js index 6075e11c32453..05071610b8b83 100644 --- a/media/system/js/core.js +++ b/media/system/js/core.js @@ -1 +1 @@ -Joomla=window.Joomla||{},Joomla.editors=Joomla.editors||{},Joomla.editors.instances=Joomla.editors.instances||{},function(e,t){"use strict";e.submitform=function(e,o,n){o||(o=t.getElementById("adminForm")),e&&(o.task.value=e),o.noValidate=!n,n?o.hasAttribute("novalidate")&&o.removeAttribute("novalidate"):o.setAttribute("novalidate","");var r=t.createElement("input");r.style.display="none",r.type="submit",o.appendChild(r).click(),o.removeChild(r)},e.submitbutton=function(t){e.submitform(t)},e.Text={strings:{},_:function(t,o){var n=e.getOptions("joomla.jtext");return n&&(this.load(n),e.loadOptions({"joomla.jtext":null})),o=void 0===o?"":o,t=t.toUpperCase(),void 0!==this.strings[t]?this.strings[t]:o},load:function(e){for(var t in e)e.hasOwnProperty(t)&&(this.strings[t.toUpperCase()]=e[t]);return this}},e.JText=e.Text,e.optionsStorage=e.optionsStorage||null,e.getOptions=function(t,o){return e.optionsStorage||e.loadOptions(),void 0!==e.optionsStorage[t]?e.optionsStorage[t]:o},e.loadOptions=function(o){if(!o){for(var n,r,a,i=t.querySelectorAll(".joomla-script-options.new"),s=0,l=0,d=i.length;l=0;s--)(l=t.createElement("div")).innerHTML=r[s],a.appendChild(l);c.appendChild(a)}},e.removeMessages=function(){for(var e=t.getElementById("system-message-container");e.firstChild;)e.removeChild(e.firstChild);e.style.display="none",e.offsetHeight,e.style.display=""},e.ajaxErrorsMessages=function(t,o,n){var r={};if("parsererror"===o){for(var a=t.responseText.trim(),i=[],s=a.length-1;s>=0;s--)i.unshift(["&#",a[s].charCodeAt(),";"].join(""));a=i.join(""),r.error=[e.JText._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",a)]}else"nocontent"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_NO_CONTENT")]:"timeout"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_TIMEOUT")]:"abort"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_CONNECTION_ABORT")]:t.responseJSON&&t.responseJSON.message?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.responseJSON.message+""]:t.statusText?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.statusText+""]:r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)];return r},e.isChecked=function(e,o){if(void 0===o&&(o=t.getElementById("adminForm")),o.boxchecked.value=e?parseInt(o.boxchecked.value)+1:parseInt(o.boxchecked.value)-1,o.elements["checkall-toggle"]){var n,r,a,i=!0;for(n=0,a=o.elements.length;n",u=n==r;for(s=0;s"+d[2]+"");c+="",i?i.innerHTML=c:t.writeln(c)},window.changeDynaList=function(e,o,n,r,a){console.warn("window.changeDynaList() is deprecated without a replacement!");for(var i,s,l,d,c=t.adminForm[e],u=n==r;c.firstChild;)c.removeChild(c.firstChild);for(s in i=0,o)o.hasOwnProperty(s)&&(l=o[s])[0]==n&&((d=new Option).value=l[1],d.text=l[2],(u&&a==d.value||!u&&0===i)&&(d.selected=!0),c.options[i++]=d);c.length=i},window.radioGetCheckedValue=function(e){if(console.warn("window.radioGetCheckedValue() is deprecated without a replacement!"),!e)return"";var t,o=e.length;if(void 0===o)return e.checked?e.value:"";for(t=0;t-1?n.options[r].value:null},window.listItemTask=function(t,o){return console.warn("window.listItemTask() is deprecated use Joomla.listItemTask() instead"),e.listItemTask(t,o)},e.listItemTask=function(e,o){var n,r=t.adminForm,a=0,i=r[e];if(!i)return!1;for(;n=r["cb"+a];)n.checked=!1,a++;return i.checked=!0,r.boxchecked.value=1,window.submitform(o),!1},window.submitbutton=function(t){console.warn("window.submitbutton() is deprecated use Joomla.submitbutton() instead"),e.submitbutton(t)},window.submitform=function(t){console.warn("window.submitform() is deprecated use Joomla.submitform() instead"),e.submitform(t)},window.saveorder=function(e,t){console.warn("window.saveorder() is deprecated without a replacement!"),window.checkAll_button(e,t)},window.checkAll_button=function(o,n){var r,a;for(console.warn("window.checkAll_button() is deprecated without a replacement!"),n=n||"saveorder",r=0;r<=o;r++){if(!(a=t.adminForm["cb"+r]))return void alert("You cannot change the order of items, as an item in the list is `Checked Out`");a.checked=!0}e.submitform(n)},e.loadingLayer=function(o,n){if(o=o||"show",n=n||t.body,"load"===o){var r=(e.getOptions("system.paths")||{}).root||"",a=t.createElement("div");a.id="loading-logo",a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.width="100%",a.style.height="100%",a.style.opacity="0.8",a.style.filter="alpha(opacity=80)",a.style.overflow="hidden",a.style["z-index"]="10000",a.style.display="none",a.style["background-color"]="#fff",a.style["background-image"]='url("'+r+'/media/jui/images/ajax-loader.gif")',a.style["background-position"]="center",a.style["background-repeat"]="no-repeat",a.style["background-attachment"]="fixed",n.appendChild(a)}else t.getElementById("loading-logo")||e.loadingLayer("load",n),t.getElementById("loading-logo").style.display="show"==o?"block":"none";return t.getElementById("loading-logo")},e.extend=function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);return e},e.request=function(t){(t=e.extend({url:"",method:"GET",data:null,perform:!0},t)).method=t.data?"POST":t.method.toUpperCase();try{var o=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("MSXML2.XMLHTTP.3.0");if(o.open(t.method,t.url,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("X-Ajax-Engine","Joomla!"),"POST"===t.method){var n=e.getOptions("csrf.token","");n&&o.setRequestHeader("X-CSRF-Token",n),t.headers&&t.headers["Content-Type"]||o.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}if(t.headers)for(var r in t.headers)t.headers.hasOwnProperty(r)&&o.setRequestHeader(r,t.headers[r]);if(o.onreadystatechange=function(){4===o.readyState&&(200===o.status?t.onSuccess&&t.onSuccess.call(window,o.responseText,o):t.onError&&t.onError.call(window,o))},t.perform){if(t.onBefore&&!1===t.onBefore.call(window,o))return o;o.send(t.data)}}catch(e){return window.console&&console.log(e),!1}return o}}(Joomla,document); +Joomla=window.Joomla||{},Joomla.editors=Joomla.editors||{},Joomla.editors.instances=Joomla.editors.instances||{},function(e,t){"use strict";e.submitform=function(e,o,n){o||(o=t.getElementById("adminForm")),e&&(o.task.value=e),o.noValidate=!n,n?o.hasAttribute("novalidate")&&o.removeAttribute("novalidate"):o.setAttribute("novalidate","");var r=t.createElement("input");r.style.display="none",r.type="submit",o.appendChild(r).click(),o.removeChild(r)},e.submitbutton=function(t){e.submitform(t)},e.Text={strings:{},_:function(t,o){var n=e.getOptions("joomla.jtext");return n&&(this.load(n),e.loadOptions({"joomla.jtext":null})),o=void 0===o?"":o,t=t.toUpperCase(),void 0!==this.strings[t]?this.strings[t]:o},load:function(e){for(var t in e)e.hasOwnProperty(t)&&(this.strings[t.toUpperCase()]=e[t]);return this}},e.JText=e.Text,e.optionsStorage=e.optionsStorage||null,e.getOptions=function(t,o){return e.optionsStorage||e.loadOptions(),void 0!==e.optionsStorage[t]?e.optionsStorage[t]:o},e.loadOptions=function(o){if(!o){for(var n,r,a,i=t.querySelectorAll(".joomla-script-options.new"),s=0,l=0,d=i.length;l=0;s--)(l=t.createElement("div")).innerHTML=r[s],a.appendChild(l);c.appendChild(a)}},e.removeMessages=function(){for(var e=t.getElementById("system-message-container");e.firstChild;)e.removeChild(e.firstChild);e.style.display="none",e.offsetHeight,e.style.display=""},e.ajaxErrorsMessages=function(t,o,n){var r={};if("parsererror"===o){for(var a=t.responseText.trim(),i=[],s=a.length-1;s>=0;s--)i.unshift(["&#",a[s].charCodeAt(),";"].join(""));a=i.join(""),r.error=[e.JText._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",a)]}else"nocontent"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_NO_CONTENT")]:"timeout"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_TIMEOUT")]:"abort"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_CONNECTION_ABORT")]:t.responseJSON&&t.responseJSON.message?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.responseJSON.message+""]:t.statusText?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.statusText+""]:r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)];return r},e.isChecked=function(e,o){if(void 0===o&&(o=t.getElementById("adminForm")),o.boxchecked.value=e?parseInt(o.boxchecked.value)+1:parseInt(o.boxchecked.value)-1,o.elements["checkall-toggle"]){var n,r,a,i=!0;for(n=0,a=o.elements.length;n",u=n==r;for(s=0;s"+d[2]+"");c+="",i?i.innerHTML=c:t.writeln(c)},window.changeDynaList=function(e,o,n,r,a){console.warn("window.changeDynaList() is deprecated without a replacement!");for(var i,s,l,d,c=t.adminForm[e],u=n==r;c.firstChild;)c.removeChild(c.firstChild);for(s in i=0,o)o.hasOwnProperty(s)&&(l=o[s])[0]==n&&((d=new Option).value=l[1],d.text=l[2],(u&&a==d.value||!u&&0===i)&&(d.selected=!0),c.options[i++]=d);c.length=i},window.radioGetCheckedValue=function(e){if(console.warn("window.radioGetCheckedValue() is deprecated without a replacement!"),!e)return"";var t,o=e.length;if(void 0===o)return e.checked?e.value:"";for(t=0;t-1?n.options[r].value:null},window.listItemTask=function(t,o){return console.warn("window.listItemTask() is deprecated use Joomla.listItemTask() instead"),e.listItemTask(t,o)},e.listItemTask=function(e,o){var n,r=t.adminForm,a=0,i=r[e];if(!i)return!1;for(;n=r["cb"+a];)n.checked=!1,a++;return i.checked=!0,r.boxchecked.value=1,window.submitform(o),!1},window.submitbutton=function(t){console.warn("window.submitbutton() is deprecated use Joomla.submitbutton() instead"),e.submitbutton(t)},window.submitform=function(t){console.warn("window.submitform() is deprecated use Joomla.submitform() instead"),e.submitform(t)},window.saveorder=function(e,t){console.warn("window.saveorder() is deprecated without a replacement!"),window.checkAll_button(e,t)},window.checkAll_button=function(o,n){var r,a;for(console.warn("window.checkAll_button() is deprecated without a replacement!"),n=n||"saveorder",r=0;r<=o;r++){if(!(a=t.adminForm["cb"+r]))return void alert("You cannot change the order of items, as an item in the list is `Checked Out`");a.checked=!0}e.submitform(n)},e.loadingLayer=function(o,n){if(o=o||"show",n=n||t.body,"load"===o){var r=(e.getOptions("system.paths")||{}).root||"",a=t.createElement("div");a.id="loading-logo",a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.width="100%",a.style.height="100%",a.style.opacity="0.8",a.style.filter="alpha(opacity=80)",a.style.overflow="hidden",a.style["z-index"]="10000",a.style.display="none",a.style["background-color"]="#fff",a.style["background-image"]='url("'+r+'/media/jui/images/ajax-loader.gif")',a.style["background-position"]="center",a.style["background-repeat"]="no-repeat",a.style["background-attachment"]="fixed",n.appendChild(a)}else t.getElementById("loading-logo")||e.loadingLayer("load",n),t.getElementById("loading-logo").style.display="show"==o?"block":"none";return t.getElementById("loading-logo")},e.extend=function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);return e},e.request=function(t){(t=e.extend({url:"",method:"GET",data:null,perform:!0},t)).method=t.data?"POST":t.method.toUpperCase();try{var o=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("MSXML2.XMLHTTP.3.0");if(o.open(t.method,t.url,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("X-Ajax-Engine","Joomla!"),"POST"===t.method){var n=e.getOptions("csrf.token","");n&&o.setRequestHeader("X-CSRF-Token",n),t.headers&&t.headers["Content-Type"]||o.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}if(t.headers)for(var r in t.headers)t.headers.hasOwnProperty(r)&&o.setRequestHeader(r,t.headers[r]);if(o.onreadystatechange=function(){4===o.readyState&&(200===o.status?t.onSuccess&&t.onSuccess.call(window,o.responseText,o):t.onError&&t.onError.call(window,o))},t.perform){if(t.onBefore&&!1===t.onBefore.call(window,o))return o;o.send(t.data)}}catch(e){return window.console&&console.log(e),!1}return o}}(Joomla,document); diff --git a/media/system/js/subform-repeatable-uncompressed.js b/media/system/js/subform-repeatable-uncompressed.js index 1db67997ba525..fb7d5dd0d8bfa 100644 --- a/media/system/js/subform-repeatable-uncompressed.js +++ b/media/system/js/subform-repeatable-uncompressed.js @@ -8,7 +8,7 @@ $.subformRepeatable = function(container, options){ this.$container = $(container); - // check if alredy exist + // check if already exist if(this.$container.data("subformRepeatable")){ return self; } @@ -144,14 +144,13 @@ // fix names ind id`s for field that in $row $.subformRepeatable.prototype.fixUniqueAttributes = function($row, count){ - this.lastRowNum++; var group = $row.attr('data-group'),// current group name basename = $row.attr('data-base-name'), // group base name, without count count = count || 0, - countnew = Math.max(this.lastRowNum, count + 1), - groupnew = basename + countnew; // new group name + countnew = Math.max(this.lastRowNum, count), + groupnew = basename + countnew; // new group name - this.lastRowNum = countnew; + this.lastRowNum = countnew + 1; $row.attr('data-group', groupnew); // Fix inputs that have a "name" attribute diff --git a/media/system/js/subform-repeatable.js b/media/system/js/subform-repeatable.js index 3890ea678c921..09bb5adc3f366 100644 --- a/media/system/js/subform-repeatable.js +++ b/media/system/js/subform-repeatable.js @@ -1,2 +1 @@ -!(function(e){"use strict";e.subformRepeatable=function(t,a){if(this.$container=e(t),this.$container.data("subformRepeatable"))return o;this.$container.data("subformRepeatable",o),this.options=e.extend({},e.subformRepeatable.defaults,a),this.template="",this.prepareTemplate(),this.$containerRows=this.options.rowsContainer?this.$container.find(this.options.rowsContainer):this.$container,this.lastRowNum=this.$containerRows.find(this.options.repeatableElement).length;var o=this;this.$container.on("click",this.options.btAdd,(function(t){t.preventDefault();var a=e(this).parents(o.options.repeatableElement);a.length||(a=null),o.addRow(a)})),this.$container.on("click",this.options.btRemove,(function(t){t.preventDefault();var a=e(this).parents(o.options.repeatableElement);o.removeRow(a)})),this.options.btMove&&this.$containerRows.sortable({items:this.options.repeatableElement,handle:this.options.btMove,tolerance:"pointer"}),this.$container.trigger("subform-ready")},e.subformRepeatable.prototype.prepareTemplate=function(){if(this.options.rowTemplateSelector){var t=this.$container.find(this.options.rowTemplateSelector)[0]||{};this.template=e.trim(t.text||t.textContent)}else{var a=this.$container.find(this.options.repeatableElement).get(0),o=e(a).clone();try{this.clearScripts(o)}catch(e){window.console&&console.log(e)}this.template=o.prop("outerHTML")}},e.subformRepeatable.prototype.addRow=function(t){var a=this.$containerRows.find(this.options.repeatableElement).length;if(a>=this.options.maximum)return null;var o=e.parseHTML(this.template);t?e(t).after(o):this.$containerRows.append(o);var r=e(o);r.attr("data-new","true"),this.fixUniqueAttributes(r,a);try{this.fixScripts(r)}catch(e){window.console&&console.log(e)}return this.$container.trigger("subform-row-add",r),r},e.subformRepeatable.prototype.removeRow=function(e){this.$containerRows.find(this.options.repeatableElement).length<=this.options.minimum||(this.$container.trigger("subform-row-remove",e),e.remove())},e.subformRepeatable.prototype.fixUniqueAttributes=function(t,a){this.lastRowNum++;var o=t.attr("data-group"),r=t.attr("data-base-name"),i=(a=a||0,Math.max(this.lastRowNum,a+1)),n=r+i;this.lastRowNum=i,t.attr("data-group",n);for(var s=t.find("[name]"),l={},p=0,f=s.length;p=this.options.maximum)return null;var a=w.parseHTML(this.template);e?w(e).after(a):this.$containerRows.append(a);var o=w(a);o.attr("data-new","true"),this.fixUniqueAttributes(o,t);try{this.fixScripts(o)}catch(e){window.console&&console.log(e)}return this.$container.trigger("subform-row-add",o),o},w.subformRepeatable.prototype.removeRow=function(e){this.$containerRows.find(this.options.repeatableElement).length<=this.options.minimum||(this.$container.trigger("subform-row-remove",e),e.remove())},w.subformRepeatable.prototype.fixUniqueAttributes=function(e,t){var a=e.attr("data-group"),o=e.attr("data-base-name"),r=(t=t||0,Math.max(this.lastRowNum,t)),i=o+r;this.lastRowNum=r+1,e.attr("data-group",i);for(var n=e.find("[name]"),s={},l=0,p=n.length;lanchor_rel == 'nofollow') + { + $attributes['rel'] .= ' nofollow'; + } } elseif ($item->browserNav == 2) { diff --git a/modules/mod_random_image/tmpl/default.php b/modules/mod_random_image/tmpl/default.php index df1b623caa19e..87d73b10418e5 100644 --- a/modules/mod_random_image/tmpl/default.php +++ b/modules/mod_random_image/tmpl/default.php @@ -13,7 +13,7 @@ - folder . '/' . $image->name, $image->name, array('width' => $image->width, 'height' => $image->height)); ?> + folder . '/' . htmlspecialchars($image->name, ENT_COMPAT, 'UTF-8'), htmlspecialchars($image->name, ENT_COMPAT, 'UTF-8'), array('width' => $image->width, 'height' => $image->height)); ?> diff --git a/plugins/authentication/cookie/cookie.php b/plugins/authentication/cookie/cookie.php index 9a611ec67b98b..9a2effc87ff71 100644 --- a/plugins/authentication/cookie/cookie.php +++ b/plugins/authentication/cookie/cookie.php @@ -133,7 +133,8 @@ public function onUserAuthenticate($credentials, $options, &$response) if (!JUserHelper::verifyPassword($cookieArray[0], $results[0]->token)) { /* - * This is a real attack! Either the series was guessed correctly or a cookie was stolen and used twice (once by attacker and once by victim). + * This is a real attack! + * Either the series was guessed correctly or a cookie was stolen and used twice (once by attacker and once by victim). * Delete all tokens for this user! */ $query = $this->db->getQuery(true) @@ -294,8 +295,8 @@ public function onUserAfterLogin($options) } // Get the parameter values - $lifetime = $this->params->get('cookie_lifetime', '60') * 24 * 60 * 60; - $length = $this->params->get('key_length', '16'); + $lifetime = $this->params->get('cookie_lifetime', 60) * 24 * 60 * 60; + $length = $this->params->get('key_length', 16); // Generate new cookie $token = JUserHelper::genRandomPassword($length); @@ -334,9 +335,9 @@ public function onUserAfterLogin($options) ->where($this->db->quoteName('uastring') . ' = ' . $this->db->quote($cookieName)); } - $hashed_token = JUserHelper::hashPassword($token); + $hashedToken = JUserHelper::hashPassword($token); - $query->set($this->db->quoteName('token') . ' = ' . $this->db->quote($hashed_token)); + $query->set($this->db->quoteName('token') . ' = ' . $this->db->quote($hashedToken)); try { diff --git a/plugins/authentication/gmail/gmail.xml b/plugins/authentication/gmail/gmail.xml index 8fc5dbf49908e..46e78ad486090 100644 --- a/plugins/authentication/gmail/gmail.xml +++ b/plugins/authentication/gmail/gmail.xml @@ -25,6 +25,7 @@ label="PLG_GMAIL_FIELD_APPLYSUFFIX_LABEL" description="PLG_GMAIL_FIELD_APPLYSUFFIX_DESC" default="0" + filter="integer" > @@ -46,6 +47,7 @@ label="PLG_GMAIL_FIELD_VERIFYPEER_LABEL" description="PLG_GMAIL_FIELD_VERIFYPEER_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -66,6 +68,7 @@ label="PLG_GMAIL_FIELD_BACKEND_LOGIN_LABEL" description="PLG_GMAIL_FIELD_BACKEND_LOGIN_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/authentication/ldap/ldap.xml b/plugins/authentication/ldap/ldap.xml index facf4ed22aae8..32be857af52bb 100644 --- a/plugins/authentication/ldap/ldap.xml +++ b/plugins/authentication/ldap/ldap.xml @@ -47,6 +47,7 @@ label="PLG_LDAP_FIELD_V3_LABEL" description="PLG_LDAP_FIELD_V3_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -59,6 +60,7 @@ label="PLG_LDAP_FIELD_NEGOCIATE_LABEL" description="PLG_LDAP_FIELD_NEGOCIATE_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -71,6 +73,7 @@ label="PLG_LDAP_FIELD_REFERRALS_LABEL" description="PLG_LDAP_FIELD_REFERRALS_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/content/emailcloak/emailcloak.xml b/plugins/content/emailcloak/emailcloak.xml index ac0ae63e27229..0e58e1dc3384d 100644 --- a/plugins/content/emailcloak/emailcloak.xml +++ b/plugins/content/emailcloak/emailcloak.xml @@ -25,6 +25,7 @@ label="PLG_CONTENT_EMAILCLOAK_MODE_LABEL" description="PLG_CONTENT_EMAILCLOAK_MODE_DESC" default="1" + filter="integer" > diff --git a/plugins/content/joomla/joomla.xml b/plugins/content/joomla/joomla.xml index f77f91a58a391..4e1ff78cca7a6 100644 --- a/plugins/content/joomla/joomla.xml +++ b/plugins/content/joomla/joomla.xml @@ -26,6 +26,7 @@ description="PLG_CONTENT_JOOMLA_FIELD_CHECK_CATEGORIES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -38,6 +39,7 @@ description="PLG_CONTENT_JOOMLA_FIELD_EMAIL_NEW_FE_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/content/pagebreak/pagebreak.xml b/plugins/content/pagebreak/pagebreak.xml index 3361bb843584d..30a235e84e44b 100644 --- a/plugins/content/pagebreak/pagebreak.xml +++ b/plugins/content/pagebreak/pagebreak.xml @@ -27,6 +27,7 @@ description="PLG_CONTENT_PAGEBREAK_SITE_TITLE_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -39,6 +40,7 @@ description="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEX_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -49,7 +51,6 @@ type="text" label="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT" description="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT_DESC" - default="" showon="article_index:1" /> @@ -60,6 +61,7 @@ description="PLG_CONTENT_PAGEBREAK_TOC_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -72,6 +74,7 @@ description="PLG_CONTENT_PAGEBREAK_SHOW_ALL_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/content/pagenavigation/pagenavigation.xml b/plugins/content/pagenavigation/pagenavigation.xml index d550286c9e718..73e916368021a 100644 --- a/plugins/content/pagenavigation/pagenavigation.xml +++ b/plugins/content/pagenavigation/pagenavigation.xml @@ -27,6 +27,7 @@ label="PLG_PAGENAVIGATION_FIELD_POSITION_LABEL" description="PLG_PAGENAVIGATION_FIELD_POSITION_DESC" default="1" + filter="integer" > @@ -38,6 +39,7 @@ label="PLG_PAGENAVIGATION_FIELD_RELATIVE_LABEL" description="PLG_PAGENAVIGATION_FIELD_RELATIVE_DESC" default="1" + filter="integer" > @@ -49,6 +51,7 @@ label="PLG_PAGENAVIGATION_FIELD_DISPLAY_LABEL" description="PLG_PAGENAVIGATION_FIELD_DISPLAY_DESC" default="0" + filter="integer" > diff --git a/plugins/fields/calendar/params/calendar.xml b/plugins/fields/calendar/params/calendar.xml index 161568b39bb64..85f90459246d1 100644 --- a/plugins/fields/calendar/params/calendar.xml +++ b/plugins/fields/calendar/params/calendar.xml @@ -8,8 +8,8 @@ label="PLG_FIELDS_CALENDAR_PARAMS_SHOWTIME_LABEL" description="PLG_FIELDS_CALENDAR_PARAMS_SHOWTIME_DESC" class="btn-group btn-group-yesno" - size="20" default="0" + filter="integer" > diff --git a/plugins/fields/checkboxes/checkboxes.xml b/plugins/fields/checkboxes/checkboxes.xml index bf922346b9b99..2628fceb9c779 100644 --- a/plugins/fields/checkboxes/checkboxes.xml +++ b/plugins/fields/checkboxes/checkboxes.xml @@ -23,11 +23,11 @@
    diff --git a/plugins/fields/integer/params/integer.xml b/plugins/fields/integer/params/integer.xml index 07b70807a3645..90a7e09c163a0 100644 --- a/plugins/fields/integer/params/integer.xml +++ b/plugins/fields/integer/params/integer.xml @@ -7,6 +7,7 @@ type="list" label="PLG_FIELDS_INTEGER_PARAMS_MULTIPLE_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_MULTIPLE_DESC" + filter="integer" > @@ -18,6 +19,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_FIRST_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_FIRST_DESC" + filter="integer" size="5" /> @@ -26,6 +28,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_LAST_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_LAST_DESC" + filter="integer" size="5" /> @@ -34,6 +37,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_STEP_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_STEP_DESC" + filter="integer" size="5" /> diff --git a/plugins/fields/list/list.xml b/plugins/fields/list/list.xml index 7bea9c7d12632..3cffb96621c59 100644 --- a/plugins/fields/list/list.xml +++ b/plugins/fields/list/list.xml @@ -26,6 +26,7 @@ description="PLG_FIELDS_LIST_PARAMS_MULTIPLE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -33,11 +34,11 @@ @@ -47,7 +48,7 @@ label="PLG_FIELDS_LIST_PARAMS_OPTIONS_NAME_LABEL" size="30" /> - + @@ -15,11 +16,11 @@ diff --git a/plugins/fields/media/media.xml b/plugins/fields/media/media.xml index 52477a7a2938b..9f531f2c6f162 100644 --- a/plugins/fields/media/media.xml +++ b/plugins/fields/media/media.xml @@ -30,7 +30,7 @@ hide_none="true" recursive="true" /> - + PLG_FIELDS_MEDIA_PARAMS_PREVIEW_INLINE - + diff --git a/plugins/fields/radio/radio.xml b/plugins/fields/radio/radio.xml index 3ea7d9112e0ca..186158aea75b0 100644 --- a/plugins/fields/radio/radio.xml +++ b/plugins/fields/radio/radio.xml @@ -23,11 +23,11 @@
    @@ -37,7 +37,7 @@ label="PLG_FIELDS_RADIO_PARAMS_OPTIONS_NAME_LABEL" size="30" /> - + diff --git a/plugins/fields/sql/sql.xml b/plugins/fields/sql/sql.xml index e7dd0dd8a9e9b..54486662df468 100644 --- a/plugins/fields/sql/sql.xml +++ b/plugins/fields/sql/sql.xml @@ -30,7 +30,7 @@ filter="raw" required="true" /> - + diff --git a/plugins/fields/text/params/text.xml b/plugins/fields/text/params/text.xml index 59d42793ac958..ad7e0317a3595 100644 --- a/plugins/fields/text/params/text.xml +++ b/plugins/fields/text/params/text.xml @@ -8,6 +8,7 @@ label="PLG_FIELDS_TEXT_PARAMS_FILTER_LABEL" description="PLG_FIELDS_TEXT_PARAMS_FILTER_DESC" class="btn-group" + validate="options" > diff --git a/plugins/fields/text/text.xml b/plugins/fields/text/text.xml index bb7f36cf738cc..f36219b92f5cd 100644 --- a/plugins/fields/text/text.xml +++ b/plugins/fields/text/text.xml @@ -28,6 +28,7 @@ description="PLG_FIELDS_TEXT_PARAMS_FILTER_DESC" class="btn-group" default="JComponentHelper::filterText" + validate="options" > diff --git a/plugins/fields/textarea/params/textarea.xml b/plugins/fields/textarea/params/textarea.xml index 8fceb3cf0c7df..ee3d3a6feba21 100644 --- a/plugins/fields/textarea/params/textarea.xml +++ b/plugins/fields/textarea/params/textarea.xml @@ -7,6 +7,7 @@ type="number" label="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_DESC" + filter="integer" size="5" /> @@ -15,6 +16,7 @@ type="number" label="PLG_FIELDS_TEXTAREA_PARAMS_COLS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_COLS_DESC" + filter="integer" size="5" /> @@ -32,6 +34,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_DESC" class="btn-group" + validate="options" > diff --git a/plugins/fields/textarea/textarea.xml b/plugins/fields/textarea/textarea.xml index da39ed7f27956..277930df0e116 100644 --- a/plugins/fields/textarea/textarea.xml +++ b/plugins/fields/textarea/textarea.xml @@ -27,6 +27,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_DESC" default="10" + filter="integer" size="5" /> @@ -36,6 +37,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_COLS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_COLS_DESC" default="10" + filter="integer" size="5" /> @@ -54,6 +56,7 @@ description="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_DESC" class="btn-group" default="JComponentHelper::filterText" + validate="options" > diff --git a/plugins/fields/url/params/url.xml b/plugins/fields/url/params/url.xml index c158742ba9e3c..d844ab6ba0769 100644 --- a/plugins/fields/url/params/url.xml +++ b/plugins/fields/url/params/url.xml @@ -22,6 +22,7 @@ type="list" label="PLG_FIELDS_URL_PARAMS_RELATIVE_LABEL" description="PLG_FIELDS_URL_PARAMS_RELATIVE_DESC" + filter="integer" > diff --git a/plugins/fields/url/url.xml b/plugins/fields/url/url.xml index 5baf5899b9f54..9d815e3fa9709 100644 --- a/plugins/fields/url/url.xml +++ b/plugins/fields/url/url.xml @@ -35,7 +35,7 @@ - + diff --git a/plugins/fields/usergrouplist/params/usergrouplist.xml b/plugins/fields/usergrouplist/params/usergrouplist.xml index 8dae8d0d4cb26..eb3d0d7a9cea2 100644 --- a/plugins/fields/usergrouplist/params/usergrouplist.xml +++ b/plugins/fields/usergrouplist/params/usergrouplist.xml @@ -7,6 +7,7 @@ type="list" label="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_LABEL" description="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_DESC" + filter="integer" > diff --git a/plugins/fields/usergrouplist/usergrouplist.xml b/plugins/fields/usergrouplist/usergrouplist.xml index 73ee52a931384..690ce51262d7b 100644 --- a/plugins/fields/usergrouplist/usergrouplist.xml +++ b/plugins/fields/usergrouplist/usergrouplist.xml @@ -28,6 +28,7 @@ description="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/finder/tags/tags.php b/plugins/finder/tags/tags.php index 179c7a622f637..ab17a4405c7b5 100644 --- a/plugins/finder/tags/tags.php +++ b/plugins/finder/tags/tags.php @@ -315,8 +315,7 @@ protected function getListQuery($query = null) // Join the #__users table $query->select('u.name AS author') - ->join('LEFT', '#__users AS u ON u.id = b.created_user_id') - ->from('#__tags AS b'); + ->join('LEFT', '#__users AS u ON u.id = a.created_user_id'); // Exclude the ROOT item $query->where($db->quoteName('a.id') . ' > 1'); diff --git a/plugins/search/categories/categories.xml b/plugins/search/categories/categories.xml index 338cdc1b1bc63..a9b401932a0f8 100644 --- a/plugins/search/categories/categories.xml +++ b/plugins/search/categories/categories.xml @@ -26,6 +26,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -36,6 +37,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -48,6 +50,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/contacts/contacts.xml b/plugins/search/contacts/contacts.xml index 227c976dae759..a8d032885e73a 100644 --- a/plugins/search/contacts/contacts.xml +++ b/plugins/search/contacts/contacts.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -47,6 +49,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/content/content.xml b/plugins/search/content/content.xml index e952e2ac90c04..7c47015d60054 100644 --- a/plugins/search/content/content.xml +++ b/plugins/search/content/content.xml @@ -25,6 +25,7 @@ label="PLG_SEARCH_CONTENT_FIELD_SEARCHLIMIT_LABEL" description="PLG_SEARCH_CONTENT_FIELD_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="PLG_SEARCH_CONTENT_FIELD_CONTENT_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -47,6 +49,7 @@ description="PLG_SEARCH_CONTENT_FIELD_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/search/newsfeeds/newsfeeds.xml b/plugins/search/newsfeeds/newsfeeds.xml index f9f1400df16ad..5d14be6cafb20 100644 --- a/plugins/search/newsfeeds/newsfeeds.xml +++ b/plugins/search/newsfeeds/newsfeeds.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -47,6 +49,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/tags/tags.php b/plugins/search/tags/tags.php index 9fbf94be90b75..8faaf696ad71f 100644 --- a/plugins/search/tags/tags.php +++ b/plugins/search/tags/tags.php @@ -161,7 +161,7 @@ public function onContentSearch($text, $phrase = '', $ordering = '', $areas = nu } } - if (!$this->params->get('show_tagged_items')) + if (!$this->params->get('show_tagged_items', 0)) { return $rows; } diff --git a/plugins/search/tags/tags.xml b/plugins/search/tags/tags.xml index 72bb6c0819e16..34aa699d84df3 100644 --- a/plugins/search/tags/tags.xml +++ b/plugins/search/tags/tags.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="PLG_SEARCH_TAGS_FIELD_SHOW_TAGGED_ITEMS_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/system/cache/cache.php b/plugins/system/cache/cache.php index 53e53008ad142..a8671f349e9f3 100644 --- a/plugins/system/cache/cache.php +++ b/plugins/system/cache/cache.php @@ -55,7 +55,7 @@ public function __construct(& $subject, $config) // Set the language in the class. $options = array( 'defaultgroup' => 'page', - 'browsercache' => $this->params->get('browsercache', false), + 'browsercache' => $this->params->get('browsercache', 0), 'caching' => false, ); @@ -188,7 +188,7 @@ protected function isExcluded() // Get the current menu item $active = $this->app->getMenu()->getActive(); - if ($active && $active->id && in_array($active->id, (array) $exclusions, true)) + if ($active && $active->id && in_array((int) $active->id, (array) $exclusions)) { return true; } diff --git a/plugins/system/cache/cache.xml b/plugins/system/cache/cache.xml index 1552bdc6f93ef..5ffe5bf89442c 100644 --- a/plugins/system/cache/cache.xml +++ b/plugins/system/cache/cache.xml @@ -26,6 +26,7 @@ description="PLG_CACHE_FIELD_BROWSERCACHE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -36,8 +37,8 @@ type="menuitem" label="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_LABEL" description="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_DESC" - default="" multiple="multiple" + filter="int_array" />
    @@ -50,7 +51,6 @@ class="input-xxlarge" rows="15" filter="raw" - default="" /> diff --git a/plugins/system/debug/debug.php b/plugins/system/debug/debug.php index 9f46cb9b68688..e1989e945ae00 100644 --- a/plugins/system/debug/debug.php +++ b/plugins/system/debug/debug.php @@ -111,13 +111,13 @@ public function __construct(&$subject, $config) parent::__construct($subject, $config); // Log the deprecated API. - if ($this->params->get('log-deprecated')) + if ($this->params->get('log-deprecated', 0)) { JLog::addLogger(array('text_file' => 'deprecated.php'), JLog::ALL, array('deprecated')); } // Log everything (except deprecated APIs, these are logged separately with the option above). - if ($this->params->get('log-everything')) + if ($this->params->get('log-everything', 0)) { JLog::addLogger(array('text_file' => 'everything.php'), JLog::ALL, array('deprecated', 'databasequery'), true); } @@ -331,7 +331,7 @@ public function onAfterRespond() $html[] = $this->display('language_files_loaded'); } - if ($this->params->get('language_strings')) + if ($this->params->get('language_strings', 1)) { $html[] = $this->display('untranslated_strings'); } @@ -404,7 +404,7 @@ private function isAuthorisedDisplayDebug() } // If the user is not allowed to view the output then end here. - $filterGroups = (array) $this->params->get('filter_groups', null); + $filterGroups = (array) $this->params->get('filter_groups', array()); if (!empty($filterGroups)) { @@ -772,7 +772,7 @@ protected function displayProfileInformation() sprintf('%.2f ms', $totalQueryTime) ) . ''; - if ($this->params->get('log-executed-sql', '0')) + if ($this->params->get('log-executed-sql', 0)) { $this->writeToFile(); } @@ -1621,7 +1621,7 @@ protected function displayLanguageFilesLoaded() */ protected function displayUntranslatedStrings() { - $stripFirst = $this->params->get('strip-first'); + $stripFirst = $this->params->get('strip-first', 1); $stripPref = $this->params->get('strip-prefix'); $stripSuff = $this->params->get('strip-suffix'); diff --git a/plugins/system/debug/debug.xml b/plugins/system/debug/debug.xml index 232d4eaa59ed5..c557968897357 100644 --- a/plugins/system/debug/debug.xml +++ b/plugins/system/debug/debug.xml @@ -25,6 +25,7 @@ label="PLG_DEBUG_FIELD_ALLOWED_GROUPS_LABEL" description="PLG_DEBUG_FIELD_ALLOWED_GROUPS_DESC" multiple="true" + filter="int_array" size="10" /> @@ -35,6 +36,7 @@ description="PLG_DEBUG_FIELD_SESSION_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -47,6 +49,7 @@ description="PLG_DEBUG_FIELD_PROFILING_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -59,6 +62,7 @@ description="PLG_DEBUG_FIELD_QUERIES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -71,6 +75,7 @@ description="PLG_DEBUG_FIELD_QUERY_TYPES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -83,6 +88,7 @@ description="PLG_DEBUG_FIELD_MEMORY_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -95,6 +101,7 @@ description="PLG_DEBUG_FIELD_LOGS_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -125,7 +132,6 @@ label="PLG_DEBUG_FIELD_LOG_CATEGORIES_LABEL" description="PLG_DEBUG_FIELD_LOG_CATEGORIES_DESC" size="60" - default="" /> @@ -147,6 +154,7 @@ description="PLG_DEBUG_FIELD_REFRESH_ASSETS_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -165,6 +173,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_ERRORFILES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -177,6 +186,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_FILES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -189,6 +199,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_STRING_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -201,6 +212,7 @@ description="PLG_DEBUG_FIELD_STRIP_FIRST_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -236,6 +248,7 @@ description="PLG_DEBUG_FIELD_LOG_DEPRECATED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -248,6 +261,7 @@ description="PLG_DEBUG_FIELD_LOG_EVERYTHING_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -260,6 +274,7 @@ description="PLG_DEBUG_FIELD_EXECUTEDSQL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/system/languagecode/languagecode.php b/plugins/system/languagecode/languagecode.php index 9826fc01cd519..b10bb5d6d19a3 100644 --- a/plugins/system/languagecode/languagecode.php +++ b/plugins/system/languagecode/languagecode.php @@ -113,16 +113,8 @@ public function onAfterRender() * * @since 2.5 */ - public function onContentPrepareForm($form, $data) + public function onContentPrepareForm(JForm $form, $data) { - // Check we have a form. - if (!($form instanceof JForm)) - { - $this->_subject->setError('JERROR_NOT_A_FORM'); - - return false; - } - // Check we are manipulating the languagecode plugin. if ($form->getName() !== 'com_plugins.plugin' || !$form->getField('languagecodeplugin', 'params')) { diff --git a/plugins/system/languagefilter/languagefilter.php b/plugins/system/languagefilter/languagefilter.php index f58e21a6994ff..a04d7c4791a69 100644 --- a/plugins/system/languagefilter/languagefilter.php +++ b/plugins/system/languagefilter/languagefilter.php @@ -533,7 +533,7 @@ public function parseRule(&$router, &$uri) */ public function onUserBeforeSave($user, $isnew, $new) { - if (array_key_exists('params', $user) && $this->params->get('automatic_change', '1') == '1') + if (array_key_exists('params', $user) && $this->params->get('automatic_change', 1) == 1) { $registry = new Registry($user['params']); $this->user_lang_code = $registry->get('language'); @@ -561,7 +561,7 @@ public function onUserBeforeSave($user, $isnew, $new) */ public function onUserAfterSave($user, $isnew, $success, $msg) { - if ($success && array_key_exists('params', $user) && $this->params->get('automatic_change', '1') == '1') + if ($success && array_key_exists('params', $user) && $this->params->get('automatic_change', 1) == 1) { $registry = new Registry($user['params']); $lang_code = $registry->get('language'); diff --git a/plugins/system/languagefilter/languagefilter.xml b/plugins/system/languagefilter/languagefilter.xml index 02c0564d42e9b..065b714812c42 100644 --- a/plugins/system/languagefilter/languagefilter.xml +++ b/plugins/system/languagefilter/languagefilter.xml @@ -25,6 +25,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_DESC" default="0" + filter="integer" > @@ -36,6 +37,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -48,6 +50,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -60,6 +63,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -72,6 +76,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" showon="alternate_meta:1" > @@ -96,6 +101,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -108,6 +114,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_DESC" default="0" + filter="integer" > diff --git a/plugins/system/log/log.xml b/plugins/system/log/log.xml index 9e0b1e5131b7a..b23e46e845779 100644 --- a/plugins/system/log/log.xml +++ b/plugins/system/log/log.xml @@ -26,6 +26,7 @@ description="PLG_SYSTEM_LOG_FIELD_LOG_USERNAME_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/system/redirect/form/excludes.xml b/plugins/system/redirect/form/excludes.xml index 1e77e45afaaaf..3f4eae2ce9a7d 100644 --- a/plugins/system/redirect/form/excludes.xml +++ b/plugins/system/redirect/form/excludes.xml @@ -13,6 +13,7 @@ type="checkbox" label="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_DESC" + filter="integer" /> diff --git a/plugins/system/redirect/redirect.php b/plugins/system/redirect/redirect.php index 3983bd9f40014..deebe6c2ed031 100644 --- a/plugins/system/redirect/redirect.php +++ b/plugins/system/redirect/redirect.php @@ -295,7 +295,7 @@ private static function doErrorHandling($error) { $params = new Registry(JPluginHelper::getPlugin('system', 'redirect')->params); - if ((bool) $params->get('collect_urls', true)) + if ((bool) $params->get('collect_urls', 1)) { if (!$params->get('includeUrl', 1)) { diff --git a/plugins/system/redirect/redirect.xml b/plugins/system/redirect/redirect.xml index 8e4c04a4fe8ce..6438fb1950aaf 100644 --- a/plugins/system/redirect/redirect.xml +++ b/plugins/system/redirect/redirect.xml @@ -26,6 +26,7 @@ label="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -37,6 +38,7 @@ label="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/system/sef/sef.php b/plugins/system/sef/sef.php index e68993b55876e..dfe2eedafd10e 100644 --- a/plugins/system/sef/sef.php +++ b/plugins/system/sef/sef.php @@ -40,7 +40,7 @@ public function onAfterDispatch() return; } - $sefDomain = $this->params->get('domain', ''); + $sefDomain = $this->params->get('domain', false); // Don't add a canonical html tag if no alternative domain has added in SEF plugin domain field. if (empty($sefDomain)) diff --git a/plugins/twofactorauth/totp/totp.xml b/plugins/twofactorauth/totp/totp.xml index 96d5f36b38620..ce69e3baf22bb 100644 --- a/plugins/twofactorauth/totp/totp.xml +++ b/plugins/twofactorauth/totp/totp.xml @@ -27,6 +27,7 @@ label="PLG_TWOFACTORAUTH_TOTP_SECTION_LABEL" description="PLG_TWOFACTORAUTH_TOTP_SECTION_DESC" default="3" + filter="integer" class="btn-group" > diff --git a/plugins/twofactorauth/yubikey/yubikey.xml b/plugins/twofactorauth/yubikey/yubikey.xml index df9cd82acc5fb..9779e85b32b75 100644 --- a/plugins/twofactorauth/yubikey/yubikey.xml +++ b/plugins/twofactorauth/yubikey/yubikey.xml @@ -26,6 +26,7 @@ label="PLG_TWOFACTORAUTH_YUBIKEY_SECTION_LABEL" description="PLG_TWOFACTORAUTH_YUBIKEY_SECTION_DESC" default="3" + filter="integer" class="btn-group" > diff --git a/plugins/user/contactcreator/contactcreator.xml b/plugins/user/contactcreator/contactcreator.xml index b06a1e9ff9885..1b88124545cb5 100644 --- a/plugins/user/contactcreator/contactcreator.xml +++ b/plugins/user/contactcreator/contactcreator.xml @@ -33,6 +33,7 @@ label="JCATEGORY" description="PLG_CONTACTCREATOR_FIELD_CATEGORY_DESC" extension="com_contact" + filter="integer" /> diff --git a/plugins/user/profile/field/tos.php b/plugins/user/profile/field/tos.php index 4c167c7d589e5..1a714d87cab40 100644 --- a/plugins/user/profile/field/tos.php +++ b/plugins/user/profile/field/tos.php @@ -59,7 +59,7 @@ protected function getLabel() JHtml::_('behavior.modal'); // Build the class for the label. - $class = !empty($this->description) ? 'hasTooltip' : ''; + $class = !empty($this->description) ? 'hasPopover' : ''; $class = $class . ' required'; $class = !empty($this->labelClass) ? $class . ' ' . $this->labelClass : $class; @@ -69,16 +69,17 @@ protected function getLabel() // If a description is specified, use it to build a tooltip. if (!empty($this->description)) { - $label .= ' title="' - . htmlspecialchars( - trim($text, ':') . '
    ' . ($this->translateDescription ? JText::_($this->description) : $this->description), - ENT_COMPAT, 'UTF-8' - ) . '"'; + $label .= ' title="' . htmlspecialchars(trim($text, ':'), ENT_COMPAT, 'UTF-8') . '"'; + $label .= ' data-content="' . htmlspecialchars( + $this->translateDescription ? JText::_($this->description) : $this->description, + ENT_COMPAT, + 'UTF-8' + ) . '"'; } - $tosarticle = $this->element['article'] > 0 ? (int) $this->element['article'] : 0; + $tosArticle = $this->element['article'] > 0 ? (int) $this->element['article'] : 0; - if ($tosarticle) + if ($tosArticle) { JLoader::register('ContentHelperRoute', JPATH_BASE . '/components/com_content/helpers/route.php'); @@ -90,27 +91,32 @@ protected function getLabel() $query = $db->getQuery(true); $query->select('id, alias, catid, language') ->from('#__content') - ->where('id = ' . $tosarticle); + ->where('id = ' . $tosArticle); $db->setQuery($query); $article = $db->loadObject(); if (JLanguageAssociations::isEnabled()) { - $tosassociated = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $tosarticle); + $tosAssociated = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $tosArticle); } - $current_lang = JFactory::getLanguage()->getTag(); + $currentLang = JFactory::getLanguage()->getTag(); - if (isset($tosassociated) && $current_lang !== $article->language && array_key_exists($current_lang, $tosassociated)) + if (isset($tosAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $tosAssociated)) { - $url = ContentHelperRoute::getArticleRoute($tosassociated[$current_lang]->id, $tosassociated[$current_lang]->catid); - $link = JHtml::_('link', JRoute::_($url . '&tmpl=component&lang=' . $tosassociated[$current_lang]->language), $text, $attribs); + $url = ContentHelperRoute::getArticleRoute( + $tosAssociated[$currentLang]->id, + $tosAssociated[$currentLang]->catid, + $tosAssociated[$currentLang]->language + ); + + $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } else { $slug = $article->alias ? ($article->id . ':' . $article->alias) : $article->id; - $url = ContentHelperRoute::getArticleRoute($slug, $article->catid); - $link = JHtml::_('link', JRoute::_($url . '&tmpl=component&lang=' . $article->language), $text, $attribs); + $url = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language); + $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } } else diff --git a/plugins/user/profile/profile.php b/plugins/user/profile/profile.php index e9b2253945caa..fed1b8e94581b 100644 --- a/plugins/user/profile/profile.php +++ b/plugins/user/profile/profile.php @@ -224,15 +224,8 @@ public static function tos($value) * * @since 1.6 */ - public function onContentPrepareForm($form, $data) + public function onContentPrepareForm(JForm $form, $data) { - if (!($form instanceof JForm)) - { - $this->_subject->setError('JERROR_NOT_A_FORM'); - - return false; - } - // Check we are manipulating a valid form. $name = $form->getName(); @@ -279,11 +272,11 @@ public function onContentPrepareForm($form, $data) $form->setFieldAttribute('tos', 'description', 'PLG_USER_PROFILE_FIELD_TOS_DESC_SITE', 'profile'); } - $tosarticle = $this->params->get('register_tos_article'); - $tosenabled = $this->params->get('register-require_tos', 0); + $tosArticle = $this->params->get('register_tos_article'); + $tosEnabled = $this->params->get('register-require_tos', 0); // We need to be in the registration form and field needs to be enabled - if ($name !== 'com_users.registration' || !$tosenabled) + if ($name !== 'com_users.registration' || !$tosEnabled) { // We only want the TOS in the registration form $form->removeField('tos', 'profile'); @@ -291,7 +284,7 @@ public function onContentPrepareForm($form, $data) else { // Push the TOS article ID into the TOS field. - $form->setFieldAttribute('tos', 'article', $tosarticle, 'profile'); + $form->setFieldAttribute('tos', 'article', $tosArticle, 'profile'); } foreach ($fields as $field) @@ -388,11 +381,11 @@ public function onUserBeforeSave($user, $isnew, $data) // Check that the tos is checked if required ie only in registration from frontend. $task = JFactory::getApplication()->input->getCmd('task'); $option = JFactory::getApplication()->input->getCmd('option'); - $tosarticle = $this->params->get('register_tos_article'); - $tosenabled = ($this->params->get('register-require_tos', 0) == 2); + $tosArticle = $this->params->get('register_tos_article'); + $tosEnabled = ($this->params->get('register-require_tos', 0) == 2); // Check that the tos is checked. - if ($task === 'register' && $tosenabled && $tosarticle && $option === 'com_users' && !$data['profile']['tos']) + if ($task === 'register' && $tosEnabled && $tosArticle && $option === 'com_users' && !$data['profile']['tos']) { throw new InvalidArgumentException(JText::_('PLG_USER_PROFILE_FIELD_TOS_DESC_SITE')); } diff --git a/plugins/user/profile/profile.xml b/plugins/user/profile/profile.xml index 57227ca6e41ca..e478d6837c6cb 100644 --- a/plugins/user/profile/profile.xml +++ b/plugins/user/profile/profile.xml @@ -33,6 +33,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS1_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS1_DESC" + default="1" + filter="integer" > @@ -44,6 +46,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC" + default="1" + filter="integer" > @@ -55,6 +59,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_CITY_LABEL" description="PLG_USER_PROFILE_FIELD_CITY_DESC" + default="1" + filter="integer" > @@ -66,6 +72,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_REGION_LABEL" description="PLG_USER_PROFILE_FIELD_REGION_DESC" + default="1" + filter="integer" > @@ -77,6 +85,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL" description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC" + default="1" + filter="integer" > @@ -88,6 +98,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_POSTAL_CODE_LABEL" description="PLG_USER_PROFILE_FIELD_POSTAL_CODE_DESC" + default="1" + filter="integer" > @@ -99,6 +111,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_PHONE_LABEL" description="PLG_USER_PROFILE_FIELD_PHONE_DESC" + default="1" + filter="integer" > @@ -110,6 +124,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_WEB_SITE_LABEL" description="PLG_USER_PROFILE_FIELD_WEB_SITE_DESC" + default="1" + filter="integer" > @@ -121,6 +137,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_LABEL" description="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_DESC" + default="1" + filter="integer" > @@ -132,6 +150,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ABOUT_ME_LABEL" description="PLG_USER_PROFILE_FIELD_ABOUT_ME_DESC" + default="1" + filter="integer" > @@ -144,6 +164,7 @@ label="PLG_USER_PROFILE_FIELD_TOS_LABEL" description="PLG_USER_PROFILE_FIELD_TOS_DESC" default="0" + filter="integer" > @@ -158,6 +179,7 @@ new="true" edit="true" clear="true" + filter="integer" /> @@ -189,6 +213,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS1_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS1_DESC" + default="1" + filter="integer" > @@ -200,6 +226,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC" + default="1" + filter="integer" > @@ -211,6 +239,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_CITY_LABEL" description="PLG_USER_PROFILE_FIELD_CITY_DESC" + default="1" + filter="integer" > @@ -222,6 +252,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_REGION_LABEL" description="PLG_USER_PROFILE_FIELD_REGION_DESC" + default="1" + filter="integer" > @@ -233,6 +265,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL" description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC" + default="1" + filter="integer" > @@ -244,6 +278,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_POSTAL_CODE_LABEL" description="PLG_USER_PROFILE_FIELD_POSTAL_CODE_DESC" + default="1" + filter="integer" > @@ -255,6 +291,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_PHONE_LABEL" description="PLG_USER_PROFILE_FIELD_PHONE_DESC" + default="1" + filter="integer" > @@ -266,6 +304,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_WEB_SITE_LABEL" description="PLG_USER_PROFILE_FIELD_WEB_SITE_DESC" + default="1" + filter="integer" > @@ -277,6 +317,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_LABEL" description="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_DESC" + default="1" + filter="integer" > @@ -288,6 +330,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ABOUT_ME_LABEL" description="PLG_USER_PROFILE_FIELD_ABOUT_ME_DESC" + default="1" + filter="integer" > @@ -299,6 +343,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_DOB_LABEL" description="PLG_USER_PROFILE_FIELD_DOB_DESC" + default="1" + filter="integer" > diff --git a/plugins/user/profile/profiles/profile.xml b/plugins/user/profile/profiles/profile.xml index 77b0e96c82c46..c548885463234 100644 --- a/plugins/user/profile/profiles/profile.xml +++ b/plugins/user/profile/profiles/profile.xml @@ -121,6 +121,7 @@ label="PLG_USER_PROFILE_FIELD_TOS_LABEL" description="PLG_USER_PROFILE_FIELD_TOS_DESC" default="0" + filter="integer" > diff --git a/templates/protostar/html/com_media/imageslist/default_image.php b/templates/protostar/html/com_media/imageslist/default_image.php index 6a5eea836df14..5f1597b350b21 100644 --- a/templates/protostar/html/com_media/imageslist/default_image.php +++ b/templates/protostar/html/com_media/imageslist/default_image.php @@ -17,14 +17,14 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/templates/protostar/js/template.js b/templates/protostar/js/template.js index 8968a6b72e894..464acc894a57e 100644 --- a/templates/protostar/js/template.js +++ b/templates/protostar/js/template.js @@ -6,47 +6,69 @@ * @since 3.2 */ -(function($) -{ - $(document).ready(function() - { - $('*[rel=tooltip]').tooltip(); +jQuery(function($) { + "use strict"; - // Turn radios into btn-group - $('.radio.btn-group label').addClass('btn'); + $(document) + .on('click', ".btn-group label:not(.active)", function() { + var $label = $(this); + var $input = $('#' + $label.attr('for')); - $(".btn-group label:not(.active)").click(function() - { - var label = $(this); - var input = $('#' + label.attr('for')); - - if (!input.prop('checked')) { - label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary'); - if (input.val() == '') { - label.addClass('active btn-primary'); - } else if (input.val() == 0) { - label.addClass('active btn-danger'); - } else { - label.addClass('active btn-success'); - } - input.prop('checked', true); - input.trigger('change'); + if ($input.prop('checked')) { + return; } - }); - $(".btn-group input[checked=checked]").each(function() - { - if ($(this).val() == '') { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-primary'); - } else if ($(this).val() == 0) { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-danger'); - } else { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-success'); + + $label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary'); + + var btnClass = 'primary'; + + + if ($input.val() != '') + { + var reversed = $label.closest('.btn-group').hasClass('btn-group-reversed'); + btnClass = ($input.val() == 0 ? !reversed : reversed) ? 'danger' : 'success'; } - }); - - $('#back-top').on('click', function(e) { + + $label.addClass('active btn-' + btnClass); + $input.prop('checked', true).trigger('change'); + }) + .on('click', '#back-top', function (e) { e.preventDefault(); $("html, body").animate({scrollTop: 0}, 1000); + }) + .on('subform-row-add', initButtonGroup) + .on('subform-row-add', initTooltip); + + initButtonGroup(); + initTooltip(); + + // Called once on domready, again when a subform row is added + function initTooltip(event, container) + { + $(container || document).find('*[rel=tooltip]').tooltip(); + } + + // Called once on domready, again when a subform row is added + function initButtonGroup(event, container) + { + var $container = $(container || document); + + // Turn radios into btn-group + $container.find('.radio.btn-group label').addClass('btn'); + + $container.find(".btn-group input:checked").each(function() + { + var $input = $(this); + var $label = $('label[for=' + $input.attr('id') + ']'); + var btnClass = 'primary'; + + if ($input.val() != '') + { + var reversed = $input.parent().hasClass('btn-group-reversed'); + btnClass = ($input.val() == 0 ? !reversed : reversed) ? 'danger' : 'success'; + } + + $label.addClass('active btn-' + btnClass); }); - }) -})(jQuery); \ No newline at end of file + } +}); diff --git a/tests/javascript/subform-repeatable/spec.js b/tests/javascript/subform-repeatable/spec.js index 7f56a8d86c9ee..9fb2bf19cf57d 100644 --- a/tests/javascript/subform-repeatable/spec.js +++ b/tests/javascript/subform-repeatable/spec.js @@ -39,26 +39,26 @@ define(['jquery', 'testsRoot/subform-repeatable/spec-setup', 'jasmineJquery'], f expect($container.find('tbody').children().length).toEqual(2); }); - it('Should fix the id of the template input checkbox element to "jform_group__group2__checkbox"', function () { + it('Should fix the id of the template input checkbox element to "jform_group__group1__checkbox"', function () { expect($container.find('#jform_group__groupX__checkbox')).not.toExist(); - expect($container.find('#jform_group__group2__checkbox')).toExist(); + expect($container.find('#jform_group__group1__checkbox')).toExist(); }); it('Should fix the for attribute of the checkbox label element to match the changed input id', function () { - expect($container.find('label[for="jform_group__group2__checkbox"]')).toExist(); + expect($container.find('label[for="jform_group__group1__checkbox"]')).toExist(); }); - it('Should fix the name of the template input checkbox element to "jform[group][group2][checkbox]"', function () { - expect($container.find('#jform_group__group2__checkbox')).toHaveAttr('name','jform[group][group2][checkbox]'); + it('Should fix the name of the template input checkbox element to "jform[group][group1][checkbox]"', function () { + expect($container.find('#jform_group__group1__checkbox')).toHaveAttr('name','jform[group][group1][checkbox]'); }); - it('Should fix the id of the template input radio element to "jform_group__group2__radio0"', function () { + it('Should fix the id of the template input radio element to "jform_group__group1__radio0"', function () { expect($container.find('#jform_group__groupX__radio0')).not.toExist(); - expect($container.find('#jform_group__group2__radio0')).toExist(); + expect($container.find('#jform_group__group1__radio0')).toExist(); }); - it('Should fix the name of the template input radio element to "jform[group][group2][radio]"', function () { - expect($container.find('#jform_group__group2__radio0')).toHaveAttr('name','jform[group][group2][radio]'); + it('Should fix the name of the template input radio element to "jform[group][group1][radio]"', function () { + expect($container.find('#jform_group__group1__radio0')).toHaveAttr('name','jform[group][group1][radio]'); }); it('Should have captured the template correctly', function () { @@ -76,8 +76,8 @@ define(['jquery', 'testsRoot/subform-repeatable/spec-setup', 'jasmineJquery'], f expect($container.find('tbody').children().last()).toHaveAttr('data-new', 'true'); }); - it('Should set data-group attribute to "group2" in the new element', function () { - expect($container.find('tbody').children().last()).toHaveAttr('data-group', 'group2'); + it('Should set data-group attribute to "group1" in the new element', function () { + expect($container.find('tbody').children().last()).toHaveAttr('data-group', 'group1'); }); it('Should trigger subform-row-add event', function () { diff --git a/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php b/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php index b6093f4c56496..8ca16803e5333 100644 --- a/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php +++ b/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php @@ -638,7 +638,7 @@ public function testRedirectWithHeadersSent() $buffer = ob_get_contents(); ob_end_clean(); - $this->assertEquals("\n", $buffer); + $this->assertEquals("\n", $buffer); } /** @@ -670,7 +670,7 @@ public function testRedirectWithJavascriptRedirect() $this->assertEquals( '' - . "", + . "", trim($buffer) ); } diff --git a/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php b/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php index d70eb39b12ecb..683f363ccc68b 100644 --- a/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php +++ b/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php @@ -1270,7 +1270,7 @@ public function testRedirectWithHeadersSent() $this->class->redirect('index.php'); $buffer = ob_get_clean(); - $this->assertEquals("\n", $buffer); + $this->assertEquals("\n", $buffer); } /** @@ -1299,7 +1299,7 @@ public function testRedirectWithJavascriptRedirect() $buffer = ob_get_clean(); $this->assertEquals( - '', + '', trim($buffer) ); }