Browse Source

404 error page if blog or shop module disabled in CP

Vova Tkach 5 years ago
parent
commit
6bfa760c8e
1 changed files with 26 additions and 8 deletions
  1. 26 8
      engine/modules/modules.go

+ 26 - 8
engine/modules/modules.go

@@ -337,17 +337,35 @@ func (this *Modules) XXXActionFire(wrap *wrapper.Wrapper) bool {
 
 func (this *Modules) XXXFrontEnd(wrap *wrapper.Wrapper) bool {
 	mod, cm := this.getCurrentModule(wrap, false)
-	if mod != nil {
-		wrap.CurrModule = cm
-		if mod.Front != nil {
-			start := time.Now()
-			mod.Front(wrap)
-			if !(mod.Info.Mount == "api" || (mod.Info.Mount == "shop" && len(wrap.UrlArgs) >= 3 && wrap.UrlArgs[1] == "basket")) {
-				wrap.W.Write([]byte(fmt.Sprintf("<!-- %.3f ms -->", time.Now().Sub(start).Seconds())))
+	if mod == nil {
+		return false
+	}
+
+	// Index module, if module disabled
+	if mod.Info.Mount == "blog" || mod.Info.Mount == "shop" {
+		if (*wrap.Config).Modules.Enabled.Blog == 0 || (*wrap.Config).Modules.Enabled.Shop == 0 {
+			if m, ok := this.mods["index"]; ok {
+				if mod.Info.Mount == "blog" && (*wrap.Config).Modules.Enabled.Blog == 0 {
+					mod = m
+					cm = "index"
+				} else if mod.Info.Mount == "shop" && (*wrap.Config).Modules.Enabled.Shop == 0 {
+					mod = m
+					cm = "index"
+				}
 			}
-			return true
 		}
 	}
+
+	wrap.CurrModule = cm
+	if mod.Front != nil {
+		start := time.Now()
+		mod.Front(wrap)
+		if !(mod.Info.Mount == "api" || (mod.Info.Mount == "shop" && len(wrap.UrlArgs) >= 3 && wrap.UrlArgs[1] == "basket")) {
+			wrap.W.Write([]byte(fmt.Sprintf("<!-- %.3f ms -->", time.Now().Sub(start).Seconds())))
+		}
+		return true
+	}
+
 	return false
 }