[FEATURE] Handle enable fields and deleted records settings granulary
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Persistence / Generic / QuerySettingsInterface.php
index 4d4bc98..c64f1a6 100644 (file)
@@ -82,22 +82,65 @@ interface Tx_Extbase_Persistence_QuerySettingsInterface {
         */
        public function getRespectSysLanguage();
 
+
        /**
-        * Sets the flag if the visibility in the frontend should be respected.
+        * Sets a flag indicating whether all or some enable fields should be ignored. If TRUE, all enable fields are ignored.
+        * If--in addition to this--enableFieldsToBeIgnored is set, only fields specified there are ignored. If FALSE, all
+        * enable fields are taken into account, regardless of the enableFieldsToBeIgnored setting.
         *
-        * @param boolean $respectEnableFields TRUE if the visibility in the frontend should be respected. If TRUE, the "enable fields" of TYPO3 will be added to the query statement.
-        * @return Tx_Extbase_Persistence_QuerySettingsInterface instance of $this to allow method chaining
+        * @param boolean $ignoreEnableFields
+        * @see setEnableFieldsToBeIgnored()
+        * @api
+        */
+       public function setIgnoreEnableFields($ignoreEnableFields);
+
+       /**
+        * The returned value indicates whether all or some enable fields should be ignored.
+        *
+        * If TRUE, all enable fields are ignored. If--in addition to this--enableFieldsToBeIgnored is set, only fields specified there are ignored.
+        * If FALSE, all enable fields are taken into account, regardless of the enableFieldsToBeIgnored setting.
+        *
+        * @return boolean
+        * @see getEnableFieldsToBeIgnored()
+        */
+       public function getIgnoreEnableFields();
+
+       /**
+        * An array of column names in the enable columns array (array keys in $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']),
+        * to be ignored while building the query statement. Adding a column name here effectively switches off filtering
+        * by this column. This setting is only taken into account if $this->ignoreEnableFields = TRUE.
+        *
+        * @param array $enableFieldsToBeIgnored
+        * @return void
+        * @see setIgnoreEnableFields()
         * @api
         */
-       public function setRespectEnableFields($respectEnableFields);
+       public function setEnableFieldsToBeIgnored($enableFieldsToBeIgnored);
 
        /**
-        * Returns the state, if the visibility settings for the frontend should be respected for the query.
+        * An array of column names in the enable columns array (array keys in $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']),
+        * to be ignored while building the query statement.
         *
-        * @return boolean TRUE, if the visibility settings for the frontend should should be respected; otherwise FALSE.
+        * @return array
+        * @see getIgnoreEnableFields()
         */
-       public function getRespectEnableFields();
+       public function getEnableFieldsToBeIgnored();
 
+       /**
+        * Sets the flag if the query should return objects that are deleted.
+        *
+        * @param boolean $includeDeleted
+        * @return void
+        * @api
+        */
+       public function setIncludeDeleted($includeDeleted);
+
+       /**
+        * Returns if the query should return objects that are deleted.
+        *
+        * @return boolean
+        */
+       public function getIncludeDeleted();
        /**
         * Sets the state, if the QueryResult should be returned unmapped.
         *