Robert Vogel has uploaded a new change for review. https://gerrit.wikimedia.org/r/322110
Change subject: Maintenance script that clears old and no longer available portlets from database ...................................................................... Maintenance script that clears old and no longer available portlets from database Change-Id: Iedc13d9b8c9a08fd2c103bfd16f2a05bc9c994d4 (cherry picked from commit 31d34c8c0e76ba56e3ca91bcebbb01803488b7cd) --- A Dashboards/maintenance/clearConfigs.php 1 file changed, 60 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions refs/changes/10/322110/1 diff --git a/Dashboards/maintenance/clearConfigs.php b/Dashboards/maintenance/clearConfigs.php new file mode 100644 index 0000000..f9d59a7 --- /dev/null +++ b/Dashboards/maintenance/clearConfigs.php @@ -0,0 +1,60 @@ +<?php + +require_once( dirname(dirname(dirname(dirname(__DIR__)))) . '/maintenance/Maintenance.php' ); + +class clearConfigs extends Maintenance{ + public function execute() { + $aFinalPortletList = array(); + $aPortlets = array(); + + Hooks::run( 'BSDashboardsUserDashboardPortalPortlets', array( &$aPortlets ) ); + Hooks::run( 'BSDashboardsAdminDashboardPortalPortlets', array( &$aPortlets ) ); + Hooks::run( 'BSDashboardsGetPortlets', array( &$aPortlets ) ); + + for ( $i = 0; $i < count( $aPortlets ); $i++ ) { + $aFinalPortletList[] = $aPortlets[$i]["type"]; + } + + $oDbr = $this->getDB( DB_SLAVE ); + $res = $oDbr->select( 'bs_dashboards_configs', '*' ); + + foreach( $res as $row ) { + $iUser = $row->dc_identifier; + $sType = $row->dc_type; + $aPortalConfig = unserialize( $row->dc_config ); + $aPortalConfig = FormatJson::decode( $aPortalConfig ); + $bHasChange = false; + + for ( $x = 0; $x < count( $aPortalConfig ); $x++ ){ + for ( $y = 0; $y < count( $aPortalConfig[$x] ); $y++ ){ + if ( !in_array( $aPortalConfig[$x][$y]->type, $aFinalPortletList ) ){ + $this->output( "Will remove " . $aPortalConfig[$x][$y]->type ); + unset( $aPortalConfig[$x][$y] ); + $bHasChange = true; + } + } + } + $aPortalConfig = FormatJson::encode( $aPortalConfig ); + if ( $bHasChange ) { + $oDbw = $this->getDB( DB_MASTER ); + $oDbw->update( + 'bs_dashboards_configs', + array( + 'dc_config' => serialize( $aPortalConfig ) + ), + array( + 'dc_type' => $sType, + 'dc_identifier' => $iUser + ) + ); + } + } + } +} + +$maintClass = 'clearConfigs'; +if (defined('RUN_MAINTENANCE_IF_MAIN')) { + require_once( RUN_MAINTENANCE_IF_MAIN ); +} else { + require_once( DO_MAINTENANCE ); # Make this work on versions before 1.17 +} -- To view, visit https://gerrit.wikimedia.org/r/322110 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iedc13d9b8c9a08fd2c103bfd16f2a05bc9c994d4 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions Gerrit-Branch: master Gerrit-Owner: Robert Vogel <vo...@hallowelt.biz> Gerrit-Reviewer: ItSpiderman <d.savulje...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits