Robert Vogel has uploaded a new change for review.
https://gerrit.wikimedia.org/r/271219
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(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions
refs/changes/19/271219/1
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: newchange
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]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits