Robert Vogel has submitted this change and it was merged.

Change subject: getCustomList: modified namespace argument
......................................................................


getCustomList: modified namespace argument

*ns="all" is now including ns="6" (images)
*excludens is working now

Previously smartlist did not show ns="6", even if it was set
explizit.

Patch Set 2: modification according to comments

Change-Id: Ib28aaeb60c40cb02ffa70cb45980937751dd258a
(cherry picked from commit 93ecda2e03c9ff226a7a1d969265091d26288c20)
---
M SmartList/SmartList.class.php
1 file changed, 28 insertions(+), 7 deletions(-)

Approvals:
  Robert Vogel: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/SmartList/SmartList.class.php b/SmartList/SmartList.class.php
index 2f56c3d..22a06d6 100644
--- a/SmartList/SmartList.class.php
+++ b/SmartList/SmartList.class.php
@@ -567,6 +567,7 @@
                $aArgs['numwithtext'] = BsCore::sanitizeArrayEntry( $aArgs, 
'numwithtext', 100, BsPARAMTYPE::INT );
                $aArgs['meta'] = BsCore::sanitizeArrayEntry( $aArgs, 'meta', 
false, BsPARAMTYPE::BOOL );
                $aArgs['target'] = BsCore::sanitizeArrayEntry( $aArgs, 
'target', '', BsPARAMTYPE::STRING );
+               $aArgs['excludens'] = BsCore::sanitizeArrayEntry( $aArgs, 
'excludens', '', BsPARAMTYPE::SQL_STRING );
 
                $oSmartListView = new ViewBaseElement();
                if ( !empty( $aArgs['heading'] ) ) {
@@ -604,7 +605,8 @@
         * @param bool $aArgs['showtext'] Also display article text.
         * @param int $aArgs['trimtext'] Maximum number of text characters.
         * @param string $aArgs['order'] Sort order for list. (time|title)
-       * @param bool $aArgs['showns'] Show namespace befor title.
+        * @param string $aArgs['excludens'] Comma separated list of excluded 
namespaces.
+        * @param bool $aArgs['showns'] Show namespace befor title.
         * @return string HTML output that is to be displayed.
         */
        private function getCustomList( $aArgs ) {
@@ -613,6 +615,7 @@
                 * @var List of objects with three properties: title, namespace 
and timestamp
                 */
                $aObjectList = array();
+               $aNamespaceIds = array();
 
                $oErrorListView = new ViewTagErrorList( $this );
                $oValidationResult = BsValidator::isValid( 'ArgCount', 
$aArgs['count'], array( 'fullResponse' => true ) );
@@ -722,7 +725,7 @@
                        }
 
                        try {
-                               $aNamespaceIds = 
BsNamespaceHelper::getNamespaceIdsFromAmbiguousCSVString( $aArgs['namespaces'] 
);
+                               $aNamespaceIds = $this->makeNamespaceArrayDiff( 
$aArgs );
                                $aConditions[] = 'rc_namespace IN (' . implode( 
',', $aNamespaceIds ) . ')';
                        } catch ( BsInvalidNamespaceException $ex ) {
                                $sInvalidNamespaces = implode( ', ', 
$ex->getListOfInvalidNamespaces() );
@@ -769,7 +772,7 @@
                        }
 
                        $aConditions[] = 'rc_title = page_title AND 
rc_namespace = page_namespace'; //prevent display of deleted articles
-                       $aConditions[] = 'NOT (rc_type = 3)'; //prevent moves 
and deletes from being displayed
+                       $aConditions[] = 'NOT ( rc_type = 3 AND NOT ( 
rc_namespace = 6 ) )'; //include files
 
                        $aFields = array( 'rc_title as title', 'rc_namespace as 
namespace' );
                        if ( isset( $aArgs['meta'] ) && $aArgs['meta'] == true 
) {
@@ -840,10 +843,7 @@
                        $aOptions = array();
 
                        try {
-                               $aNamespaceIds = 
BsNamespaceHelper::getNamespaceIdsFromAmbiguousCSVString(
-                                       $aArgs['namespaces']
-                               );
-                               $aConditions['page_namespace'] = $aNamespaceIds;
+                               $aConditions['page_namespace'] = 
$this->makeNamespaceArrayDiff( $aArgs );
                        } catch ( BsInvalidNamespaceException $ex ) {
                                $sInvalidNamespaces = implode( ', ', 
$ex->getListOfInvalidNamespaces() );
                                $oErrorListView->addItem(
@@ -1352,4 +1352,25 @@
                }
        }
 
+       /*
+        * Remove the excluded namespaces from the list of namespaces.
+        *
+        * @param array &$aArgs Arguments of custom list
+        * @param array &$aNamespaceDiff
+        */
+       public function makeNamespaceArrayDiff( &$aArgs ) {
+
+               if ( isset( $aArgs['excludens'] ) &&  $aArgs['excludens'] !== 
'' ) {
+                       $aNamespaceDiff = array_diff(
+                               
BsNamespaceHelper::getNamespaceIdsFromAmbiguousCSVString( $aArgs['namespaces'] 
),
+                               
BsNamespaceHelper::getNamespaceIdsFromAmbiguousCSVString( $aArgs['excludens'] )
+                       );
+               }
+               else {
+                       $aNamespaceDiff = 
BsNamespaceHelper::getNamespaceIdsFromAmbiguousCSVString( $aArgs['namespaces'] 
);
+               }
+
+               return $aNamespaceDiff;
+       }
+
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/271219
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib28aaeb60c40cb02ffa70cb45980937751dd258a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Robert Vogel <[email protected]>
Gerrit-Reviewer: Dvogel hallowelt <[email protected]>
Gerrit-Reviewer: Robert Vogel <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to