Skip to content
Snippets Groups Projects
  1. Jan 09, 2014
    • Markus Klein's avatar
      Revert "[BUGFIX] IRRE creates new records when using foreign_selector" · b3a82c72
      Markus Klein authored
      This reverts commit 692bd22c
      
      The patch breaks IRRE. It is impossible to add images.
      
      Change-Id: Iac9f0a7af3cc8532a953ac1947f6877ded4f915f
      Resolves: #43239
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26726
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      b3a82c72
    • Kai Vogel's avatar
      [BUGFIX] IRRE creates new records when using foreign_selector · 692bd22c
      Kai Vogel authored
      This patch links existing child records correctly to the parent IRRE
      field when selecting it in the generated dropdown.
      
      Scenario:
      
      Parent table configuration:
      ====================================================
      [...]['columns']['irreField']['config'] = array(
        'type' => 'inline',
        'foreign_table' => 'childTable',
        'foreign_selector' => 'childSelector',
      );
      
      Child table configuration:
      ====================================================
      [...]['columns'][childSelector']['config'] = array(
        'type' => 'select',
        'foreign_table' => 'childTable',
      );
      
      What happens?
      ====================================================
      1. The parent IRRE field renders a dropdown field
         before the child records
      2. Selecting one of the items in the dropdown should
         link this child record to current IRRE field
      3. Without patch, it will only create a blank child
         record
      4. Using the patch, it will link the existing child
         to the parent IRRE field
      
      Resolves: #43239
      Releases: 6.2, 6.1
      Change-Id: I2a308cb050962b71e9ba28b64a44962c91bde440
      Reviewed-on: https://review.typo3.org/16690
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      692bd22c
    • Jo Hasenau's avatar
      [TASK] Replace all strcmp() calls with === · 0a761995
      Jo Hasenau authored
      This patch replaces about 300 places using strcmp()
      in the whole core. There are different contexts for strcmp()
      within this set, i.e. checking for strings being '0',
      '', not '' and the like.
      
      strcmp() has to stay when it comes to real sorting of strings,
      which is a rather rare case, otherwise it can be replaced with
      faster alternatives.
      
      The following 'rules' were used for the replacement:
      
      * Use a type cast if you can't be sure about the incoming values.
        We do not need type casts if the types are implicitly defined
        before by another function. i.e. intval(), trim(), substr()
      * Use int-cast whenever the values to be compared are numbers only.
      * Use string-cast for any other combination. i.e
        (string)$len === '0' when $len can be NULL, which is different
        to (int)$len === 0
      
      Resolves: #54085
      Releases: 6.2
      Change-Id: I88fb294ae20d8c23ff58d8296fbb37925d5213c8
      Reviewed-on: https://review.typo3.org/25843
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      0a761995
    • Tymoteusz Motylewski's avatar
      [TASK] Add functional tests from irre_tutorial to the core · c9651784
      Tymoteusz Motylewski authored
      Add irre_tutorial extension as mock extension for functional tests.
      Port functional tests from IRRE tutorial to the functional testing
      framework and include them in the core and workspaces extensions.
      Some tests are skipped for now, because the core is buggy.
      
      Releases: 6.2
      Resolves: #54812
      Change-Id: I691dd97e7649c8239b6e96ce6f9a9d59e9b124c4
      Reviewed-on: https://review.typo3.org/26674
      Tested-by: Markus Klein
      Reviewed-by: Oliver Hader
      Tested-by: Oliver Hader
      c9651784
    • Oliver Hader's avatar
      [BUGFIX] Test extensions not considered in functional tests · 82a24fa0
      Oliver Hader authored
      The functional testing framework offers the possibility to define
      custom extension to be installed for each test scenario. However,
      this does not work at all, only extensions that are available in
      the original base installation can be used.
      
      This change cleans and adds the package state definition for any
      extension to be used during a functional test execution.
      
      Fixes: #54857
      Releases: 6.2
      Change-Id: I91b1cd1bc5d147287a154283e94d03d1392ac92d
      Reviewed-on: https://review.typo3.org/26705
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Thomas Maroschik
      Reviewed-by: Oliver Hader
      Tested-by: Oliver Hader
      82a24fa0
    • Mario Rimann's avatar
      [BUGFIX] File browser fails on inexistent expandFolder · a24bfae4
      Mario Rimann authored
      If a user browsed to a directory "foo" and re-opens the file-
      browser later, the same directory is shown expanded.
      
      In case the directory has been moved/renamed/deleted in the
      meantime, the user gets an exception due to the inexistent
      directory.
      
      This change just adds a try/catch block around to handle that
      situation.
      
      Change-Id: I39aab6be46aec1d3f1f365e5d5f5455aca9b3aa2
      Resolves: #50266
      Releases: 6.2, 6.1, 6.0
      Reviewed-on: https://review.typo3.org/26466
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Pascal Maechler
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      Reviewed-by: Steffen Ritter
      Tested-by: Steffen Ritter
      a24bfae4
    • Georg Ringer's avatar
      [TASK] Adopt order of cols in ext:documentation · af996702
      Georg Ringer authored
      Each of the actions 'show' and 'download' got a different sorting of the
      columns. Change the order of the download action so that the action links
      are placed at the end.
      
      Change-Id: Ifa8aa7ed2eb9bee1ebbc086607ce1261fe1a3c95
      Resolves: #54840
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26712
      Reviewed-by: Georg Ringer
      Tested-by: Georg Ringer
      af996702
    • Georg Ringer's avatar
      [BUGFIX] Properly escape the ImageMagick frame selector · c5fcc5fd
      Georg Ringer authored
      The frame selector looks like a glob pattern and gets interpreted as
      such by the shell. Currently the generated shell argument is, for
      example, 'image.png'[0] which matches a file called image.png0.
      Thus, if such a file exists, the wrong argument would be passed to
      ImageMagick.
      
      Only if there is no filename that matches the pattern, the string is
      correctly passed to ImageMagick (i.e. as-is). But even in that case
      there is a performance penalty, because the shell has to scan the whole
      directory to check if the file exists. This becomes especially bad if
      you're not dealing with a local file system.
      
      By properly escaping the frame selector we stop the shell from
      interpreting the glob pattern and both problems get fixed.
      
      Resolves: #31797
      Releases: 6.2, 6.1
      Change-Id: Ib6dc6556bb9f1d64a0154b0cbe9e253b185c74c2
      Reviewed-on: https://review.typo3.org/6662
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Stefan Neufeind
      Tested-by: Stefan Neufeind
      c5fcc5fd
    • Tom Ruether's avatar
      [BUGFIX] Only create one keypair in rsaauth · 6c4c4d95
      Tom Ruether authored
      If there are two login forms on one page the second form's private
      key overwrites the first form's private key so the first form doesn't
      work. With this patch only one keypair gets created and it doesn't
      matter how many login forms you have one one page.
      
      Change-Id: I42660140aea72d1888cc73d56e83b823206a0797
      Fixes: #24877
      Fixes: #6708
      Releases: 6.2, 6.1, 6.0, 4.5
      Reviewed-on: https://review.typo3.org/10485
      Reviewed-by: Stefan Neufeind
      Reviewed-by: Benjamin Mack
      Tested-by: Benjamin Mack
      Reviewed-by: Daniel Gorges
      Tested-by: Daniel Gorges
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      6c4c4d95
    • Ralf Hettinger's avatar
      [BUGFIX] use search word(s) for ordering search results (again) · b96eaa47
      Ralf Hettinger authored
      There has been a regression in http://review.typo3.org/6657 which
      removes correlation between searched words and ordering of search
      results. Therefore the ordering of search results had nothing to do
      with the search term anymore. This is fixed hereby by using the code
      parts from prior versions.
      
      Resolves: #38767
      Releases: 6.2, 6.1, 6.0, 4.7
      Change-Id: I9cfaceaeede38456dd7622085879c1bd0648be85
      Reviewed-on: https://review.typo3.org/20294
      Reviewed-by: Oliver Hader
      Tested-by: Oliver Hader
      Reviewed-by: Wouter Wolters
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      b96eaa47
    • Markus Klein's avatar
      [BUGFIX] Fix wording of encryption key in Installer · 1341588d
      Markus Klein authored
      The description of the encryption key uses the irregular verb
      'output' in the wrong way.
      
      Resolves: #54677
      Releases: 6.2
      Change-Id: Iad5cf8fea6e57cd8449da6d93edd7d05b3b52bf8
      Reviewed-on: https://review.typo3.org/26611
      Reviewed-by: Stefan Neufeind
      Tested-by: Stefan Neufeind
      1341588d
    • Philipp Gampe's avatar
      [BUGFIX] Installer fails when no database is selected · 9dfc355c
      Philipp Gampe authored
      Display an error message, if the selected database name is empty.
      
      Resolves: #54569
      Releases: 6.2
      Change-Id: Idbf768d7edc0e5d5e1d0faf87d62e1060c70b1e9
      Reviewed-on: https://review.typo3.org/26544
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Oliver Klee
      Reviewed-by: Stefan Neufeind
      Tested-by: Stefan Neufeind
      9dfc355c
  2. Jan 08, 2014
    • Oliver Hader's avatar
      [BUGFIX] Functional tests cannot write to backend log · 270a7eaa
      Oliver Hader authored
      Functional test cases cannot write to the backend log. The
      log entry also has an information about the currently used
      IP address, which is taken from the environment variable
      REMOTE_ADDR. In a CLI disposal this value is NULL and cannot
      be stored in the database, since the accordant sys_log.IP
      field does not support NULL values.
      
      Fixes: #54849
      Releases: 6.2
      Change-Id: If6c572c62ab7022a4cab596fa4660dec754aee3c
      Reviewed-on: https://review.typo3.org/26697
      Reviewed-by: Anja Leichsenring
      Tested-by: Anja Leichsenring
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      270a7eaa
    • Michiel Roos's avatar
      [TASK] Cleanup ContentObject\ContentObjectRenderer · 05ba10c3
      Michiel Roos authored
      Implement early return for many methods.
      
      Change-Id: I7e0c8549037f4ab15ee8653d124891bad655db83
      Resolves: #54823
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26687
      Reviewed-by: Oliver Klee
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      05ba10c3
    • Georg Ringer's avatar
      [BUGFIX] Render ext icon in EM only if available · 8042d929
      Georg Ringer authored
      Even if the ext icon is required, it can happen that it is still not
      there. Currently this leads to an ugly output which can be easily
      fixed by just checking if the icon is there.
      
      Change-Id: I207a93bb796510fba6096085a86f1dd832100e06
      Resolves: #54838
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26693
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      8042d929
    • Michiel Roos's avatar
      [TASK] Use arrays in str_replace() calls · ff2933b8
      Michiel Roos authored
      Multiple consecutive calls to str_replace can be replaced with a single
      call if the subject is the same.
      
      This will speed up the replacement and in some cases has the benefit of
      being able to return or use the result of the str_replace directly without
      creating an intermediate variable.
      
      Bad:
      $lala = 'something';
      $lala = str_replace('so', 'the', $lala);
      $lala = str_replace('me', ' ', $lala);
      $lala = str_replace('thing', 'other', $lala);
      
      Good:
      $lala = str_replace(
        array('so', 'me', 'thing'),
        array('the', ' ', 'other'),
        'something'
      );
      
      Change-Id: I1a2b99cce1444d3d2191eba8674f74aa2f74f0e8
      Resolves: #54500
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26481
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      ff2933b8
    • Markus Klein's avatar
      [TASK] Improve performance of array_merge_recursive_overrule · 2917b074
      Markus Klein authored
      The method GeneralUtility::array_merge_recursive_overrule()
      always works on a copy of the given array(s). This is highly
      inefficient when it comes to really big arrays and recursion.
      
      This patches moves the functionality into the class ArrayUtility
      and changes the behaviour to use a reference to the
      original array.
      All calls in the core are adjusted accordingly.
      
      Furthermore we deprecate the method in GeneralUtility and
      preserve backward compatibility.
      
      Resolves: #54251
      Releases: 6.2
      Change-Id: I5499905593c2124897de5998be985e546a3d05ee
      Reviewed-on: https://review.typo3.org/25986
      Reviewed-by: Michiel Roos
      Tested-by: Michiel Roos
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      Reviewed-by: Ernesto Baschny
      Tested-by: Ernesto Baschny
      2917b074
    • Ingo Schmitt's avatar
      [TASK] Optimize columns in sys_file_reference · 9e88bf74
      Ingo Schmitt authored
      MySQL up to version 5.5 allows at maximum 64 characters for table- 
      and fieldnames. Other DBMS allow less. Since MySQL is our primary
      database and DBAL could handle specialties.
      
      This patch changes the fields tablenames, fieldname and table_local
      to varchar(64) which currently is considered save.
      
      Resolves: #54726
      Releases: 6.2
      Change-Id: Ic67450a9326dceb413fe694a6233b8c092f70c79
      Reviewed-on: https://review.typo3.org/26625
      Reviewed-by: Steffen Ritter
      Tested-by: Steffen Ritter
      9e88bf74
    • Ingo Schmitt's avatar
      [TASK] Adapt indexes of sys_file_reference · 6335a24a
      Ingo Schmitt authored
      The backend and frontend fire several queries for referenced
      files - files with metadata overlay as used in tt_content for
      images and media field as well as in pages:media.
      Analysing the queries for that some indexed should be added
      to improve the query speed on large installations.
      
      This patch adds indexed for the table/fieldname combination
      as well es the uid of the record the file is attached to.
      
      Resolves: #54725
      Releases: 6.2
      Change-Id: I229e27e382e8d0fdaf9bbc0b6729f90dac019e19
      Reviewed-on: https://review.typo3.org/26626
      Reviewed-by: Steffen Ritter
      Tested-by: Steffen Ritter
      6335a24a
    • Wouter Wolters's avatar
      [TASK] Superfluous comparison in indexed_search · 15b522c4
      Wouter Wolters authored
      Change-Id: I1934a6201876290b706078519e934e05c28352ab
      Resolves: #54053
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/25740
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Jo Hasenau
      Reviewed-by: Michiel Roos
      Tested-by: Michiel Roos
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      15b522c4
    • Wouter Wolters's avatar
      [TASK] Superfluous comparison in DatabaseRecordList · e36d347f
      Wouter Wolters authored
      Fix superfluous comparison against boolean in
      DatabaseRecordList::getTable
      
      Change-Id: Icdbf78935da4135a7c6b4902b97c87e7ce658eb8
      Resolves: #54049
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/25736
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      e36d347f
  3. Jan 07, 2014
    • Francois Suter's avatar
      [TASK] Clean up uses of fe_adminLib properties · 95886120
      Francois Suter authored
      Two Core tables (fe_users and index_config) still use the
      "fe_admin_fieldList" property, which has no effect on the
      Core since the fe_adminLib.inc was moved out of it
      (into the statictemplates extension).
      
      Additionally a deprecation message is logged in method
      ExtensionManagementUtility::addTCAcolumns() when the $addTofeInterface
      argument is set to TRUE.
      
      Resolves: #54613
      Releases: 6.2
      Change-Id: I7c9961c5e92411a78bd355519a0493eb695177e7
      Reviewed-on: https://review.typo3.org/26567
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Oliver Klee
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      Reviewed-by: Francois Suter
      Tested-by: Francois Suter
      95886120
    • Benjamin Rau's avatar
      [BUGFIX] Repository uses wrong property to calc current result page · 9de93a17
      Benjamin Rau authored
      In the IndexedSearchRepository on line 157 an undefined/unused 
      property $this->resultsPerPage is used for the calculation 
      of the current page the visitor is showing on search results.
      
      Instead of using $this->resultsPerPage we have to use 
      $this->numberOfResults which is defined and contains the expected setting.
      
      Change-Id: I37c3a08c1049eb6166704b2b98ba071f03aad243
      Resolves: #54808
      Releases: 6.2, 6.1
      Reviewed-on: https://review.typo3.org/26677
      Reviewed-by: Anja Leichsenring
      Tested-by: Anja Leichsenring
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      9de93a17
    • Benjamin Rau's avatar
      [BUGFIX] PageBrowsing ViewHelper defines unused method argument · a564071e
      Benjamin Rau authored
      The PHP-Doc comments for the render-method in PageBrowsing 
      Viewhelper on Indexed Search define a $details argument 
      for that method with is then not part of the method arguments 
      itself.
      
      As it seems to be unused the argument definition should simply 
      be removed from doc comments to dont mess up the defintions 
      of the other arguments.
      
      Right now this results in maximumNumberOfResultPages be defined 
      as array and causes a fatal error like:
      The argument "maximumNumberOfResultPages" was registered with 
      type "array", but is of type "string" in view helper 
      "TYPO3\CMS\IndexedSearch\ViewHelpers\PageBrowsingViewHelper"
      
      Resolves: #54807
      Releases: 6.2, 6.1
      Change-Id: I58376880ef64a1e1088561fbdb3ff25f9c1fbdc2
      Reviewed-on: https://review.typo3.org/26676
      Reviewed-by: Anja Leichsenring
      Tested-by: Anja Leichsenring
      a564071e
    • Thomas Maroschik's avatar
      [BUGFIX] Fix dependencies for non-composer extensions · 185658af
      Thomas Maroschik authored
      The method packageRequirementIsComposerPackage of
      TYPO3\CMS\Core\Package ignores all non composer package
      names and thus dependency resolving of non composer packages
      doesn't work.
      
      This patch adapts the behavior to ignore just the platform
      package links described here
      http://getcomposer.org/doc/02-libraries.md#platform-packages
      
      Fixes: #54142
      Releases: 6.2
      Change-Id: Idb6a837eebf792c6cbf9394885edc17c9d392a9f
      Reviewed-on: https://review.typo3.org/26619
      Reviewed-by: Stefan Froemken
      Tested-by: Stefan Froemken
      Reviewed-by: Anja Leichsenring
      Tested-by: Anja Leichsenring
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Oliver Hader
      Tested-by: Oliver Hader
      185658af
  4. Jan 06, 2014
    • Michael Schams's avatar
      [BUGFIX] Replace reference to Security Cookbook with Security Guide · 76dea628
      Michael Schams authored
      Section "TYPO3 Security" refers to the TYPO3 Security Cookbook, which is
      obsolete and has been replaced by the official TYPO3 Security Guide in
      December 2011. This patch removes the reference to the Cookbook and
      replaces it by a link to the latest version of the Security Guide on
      docs.typo3.org.
      
      Resolves: #54756
      Releases: 6.2
      Change-Id: I4067d40e854e7d4b4f77e2c12239e3e00616f5a7
      Reviewed-on: https://review.typo3.org/26656
      Reviewed-by: Michiel Roos
      Tested-by: Michiel Roos
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      76dea628
  5. Jan 04, 2014
    • Michiel Roos's avatar
      [TASK] Cleanup convertParameterReflectionToArray() · c0baab82
      Michiel Roos authored
      ReflectionService::convertParameterReflectionToArray() checks
      functions already returning boolean again for boolean value.
      
      Remove this overhead and improve readability.
      
      Change-Id: I113f16cd73c713da5ec75b0e57eeee1d0e17308c
      Resolves: #54021
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/25717
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      c0baab82
    • Markus Klein's avatar
      [BUGFIX] Set uid of BE_USER mock in functional tests · 4cd861c0
      Markus Klein authored
      Datahandler functional tests lack proper initialization of the
      BE_USER mock used.
      
      Set a 'uid' for the mock in order to get tests working again.
      
      Resolves: #54741
      Releases: 6.2
      Change-Id: I20cccf8d3622b2c63d6b7c9f07c0e2d238bea7b9
      Reviewed-on: https://review.typo3.org/26642
      Reviewed-by: Oliver Hader
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      4cd861c0
    • Alexander Stehlik's avatar
      [BUGFIX] Allow NULL values in INSERT queries · 8207a2bb
      Alexander Stehlik authored
      Currently only UPDATE queries pass the $allowNull parameter to the
      fullQuoteStr() method in the DatabaseHandler. To make the behavior of
      both methods consistent and to allow NULL values during creation of
      new records by TCEmain the $allowNull parameter is also set to TRUE for
      INSERT queries.
      
      Resolves: #53662
      Releases: 6.2, 6.1, 6.0
      Change-Id: I066b9880a557b6c9058fc15f467631f1313300f9
      Reviewed-on: https://review.typo3.org/25422
      Reviewed-by: Philipp Gampe
      Reviewed-by: Frans Saris
      Tested-by: Frans Saris
      Reviewed-by: Xavier Perseguers
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      8207a2bb
  6. Jan 03, 2014
    • Michiel Roos's avatar
      [BUGFIX] EM does not always show description · 6a663554
      Michiel Roos authored
      When an extension (like rsaauth) has configuration options in the
      extension manager, the description is not shown as a tooltip when hovering
      over the extension name. Then it will only show 'Configure'. Which is not
      so helpful.
      
      The ConfigureExtensionViewHelper can be modified to not add a title
      attribute on the link. This will ensure that the title attribute of the td
      is shown.
      
      Change-Id: Ie6de8033545856cbe4a3689366e05d5d2ad3dc7b
      Resolves: #54689
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26615
      Reviewed-by: Markus Klein
      Tested-by: Markus Klein
      Reviewed-by: Xavier Perseguers
      Tested-by: Xavier Perseguers
      6a663554
  7. Dec 30, 2013
    • Michiel Roos's avatar
      [TASK] joinTSarrays() is replaced by array_replace_recursive() · e7128300
      Michiel Roos authored
      \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::joinTSarrays is
      replaced by the PHP native array_replace_recursive() (added in PHP 5.3.0)
      which does exactly the same and is twice as fast.
      
      Usage of $cObj->joinTSarrays() is deprecated.
      
      Change-Id: I748270a192bccc89927e0d6b82a1f405959b2209
      Resolves: #54520
      Releases: 6.2
      Reviewed-on: https://review.typo3.org/26500
      Reviewed-by: Ernesto Baschny
      Tested-by: Ernesto Baschny
      e7128300
  8. Dec 21, 2013
    • Michiel Roos's avatar
      [BUGFIX] isValidUrl() idna converts whole URI · f8fdcea7
      Michiel Roos authored
      GeneralUtility::isValidUrl() idna converts whole URI instead of
      domain only.
      
      The expensive idna_convert() is called from isValidUrl(). Instead of
      feeding it just the domain part, the whole URI is converted.
      
      When supplying just the domain part, a great speed gain can be seen.
      
      On seriously malformed URLs, parse_url() may return FALSE and emits an
      E_WARNING. So we check for that first.
      
      PHP no longer supports the flags FILTER_FLAG_HOST_REQUIRED and
      FILTER_FLAG_SCHEME_REQUIRED. A scheme is now required by default. [1]
      Return FALSE if the URL does not start with a scheme.
      
      A public GeneralUtility::idnaEncode() method uses a static idna_convert
      instance and fetches converted strings from a string cache array
      to avoid multiple checks on the same domain.
      
      All manual idna_convert instances are replaced with
      GeneralUtility::idnaEncode() calls.
      
      Special characters are not allowed in the URL except in the domain
      part [2]. So the test with special characters in the path was removed
      from the GeneralUtilityTest class.
      
      [1] http://www.php.net/manual/en/filter.filters.flags.php#107382
      [2] http://tools.ietf.org/html/rfc3986#appendix-A
      
      Change-Id: I7a0ab0a399d9d6cf68c824f413be6b6d621947c1
      Resolves: #53862
      Releases: 6.2, 6.1, 6.0
      Reviewed-on: https://review.typo3.org/25636
      Reviewed-by: Markus Klein
      Reviewed-by: Wouter Wolters
      Tested-by: Wouter Wolters
      Reviewed-by: Michiel Roos
      Tested-by: Michiel Roos
      Tested-by: Markus Klein
      Reviewed-by: Andreas Wolf
      Reviewed-by: Jo Hasenau
      Reviewed-by: Xavier Perseguers
      Tested-by: Xavier Perseguers
      f8fdcea7
    • Steffen Ritter's avatar
      [BUGFIX] Folder::getFiles directly calls Factory::createFileObject · 28b91ac6
      Steffen Ritter authored
      Folder::getFiles implements the logic of creating file objects
      itself, after retrieving the information from the driver.
      Besides the fact that this is slow since all information for the
      object are received from the filesystem directly instead of the
      cache in the sys_file table the uid is not present in these
      objects which finally results in the lack of metadata in these
      file objects.
      
      In addition to that ommiting the ResourceFactory several objects
      for the same file might exists which may lead to inconsistent
      behaviour and output on modifying the file.
      
      As the Folder/File Objects only should be a convinience facade
      in front of the ResourceStorage this change introduces a new
      method their, implementing the new and improved logic.
      
      At the same time the old functionality - which enforces manual
      file object creation - has been deprecated and the filelist
      module is adapted accordingly.
      
      Releases: 6.2
      Resolves: #53688
      Change-Id: I3fb97d432d325bd6400c0ae208b90d702c9f528d
      Reviewed-on: https://review.typo3.org/26360
      Reviewed-by: Frans Saris
      Tested-by: Frans Saris
      Reviewed-by: Steffen Ritter
      Tested-by: Steffen Ritter
      28b91ac6
    • Steffen Ritter's avatar
      [BUGFIX] getFileIndexRecordsForFolder only works for hierarchical path · b100e06f
      Steffen Ritter authored
      The method FileRepository::getFileIndexRecordsForFolder
      retrieves the Index Records for files in a given folder using a
      LIKE-query. This basically checks if the identifier of the a
      folder is part of the identifier of the file.
      
      This concept has several drawbacks. First not all storages are
      hierarchical, second this will fail if there is a different
      directory seperator than / and finally this fetches records
      for the folder recursively which may result in a huge amount of
      data if for example the root folder of an storage is queried.
      
      In addition the method resides in the FileRepository while it
      retrieves IndexRecords - which is a different concern.
      
      This change introduces the function within the
      FileIndexRepository and uses the folder_hash (introduced in
      https://review.typo3.org/23398) to query for the files.
      
      The old method is deprecated now, calls the new method and
      all core-usages of the old function have been rewritten to
      use the new functionality.
      
      Releases: 6.2
      Resolves: #53687
      Change-Id: Icabf2350192c93951f2277f3aa7468fe958bfabf
      Reviewed-on: https://review.typo3.org/26357
      Reviewed-by: Frans Saris
      Tested-by: Frans Saris
      Reviewed-by: Steffen Ritter
      Tested-by: Steffen Ritter
      b100e06f
  9. Dec 20, 2013
  10. Dec 19, 2013