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

Reply via email to