Prechádzať zdrojové kódy

#1091 User friendly URLs: delete records upon module uninstall

Alex Trofimov 4 rokov pred
rodič
commit
9396fbd4e6

+ 11 - 1
inc/classes/BxDolPage.php

@@ -255,7 +255,7 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
     }
 
 	/**
-     * Delete SEO link by param
+     * Delete SEO links by param
      * @param $sParamName GET param name
      * @param $sId content id
      * @return number of affected rows
@@ -265,6 +265,16 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
         return BxDolPageQuery::deleteSeoLinkByParam($sParamName, $sId);
     }
 
+	/**
+     * Delete SEO links by module
+     * @param $sModule module name
+     * @return number of affected rows
+     */
+    static public function deleteSeoLinkByModule ($sModule)
+    {
+        return BxDolPageQuery::deleteSeoLinkByModule($sModule);
+    }
+
 	/**
      * Process SEO links. It takes request part from SEO link and process it 
      * to make it work as regular page link

+ 7 - 0
inc/classes/BxDolPageQuery.php

@@ -151,6 +151,13 @@ class BxDolPageQuery extends BxDolDb
             'param_value' => $sId,
         ]);
     }
+
+    static public function deleteSeoLinkByModule($sModule)
+    {
+        return BxDolDb::getInstance()->query("DELETE FROM `sys_seo_links` WHERE `module` = :module", [
+            'module' => $sModule,
+        ]);
+    }
 }
 
 /** @} */

+ 3 - 0
studio/classes/BxDolStudioInstaller.php

@@ -948,6 +948,9 @@ class BxDolStudioInstaller extends BxDolInstallerUtils
         // delete badges data
         BxDolBadges::onModuleUninstall($this->_aConfig['name'], $iFiles);
         
+        // delete SEO links
+        BxDolPage::deleteSeoLinkByModule($this->_aConfig['name']);
+
         // queue for deletion storage files
         if(!empty($this->_aConfig['storages']) && is_array($this->_aConfig['storages']))        
             foreach($this->_aConfig['storages'] as $s)