Błąd w Router::getModelFile
Data zgłoszenia: 05 05 2011
Status: Rozwiazany
Wersja systemu: 1.1.3
Priorytet: Niski
Autor: Paweł Kowalczyk
Kiedy używamy innego namespace niż domyślny w funkcji Router::getModelFile po znalezieniu pliku modelu instrukcja break powoduje wyjście tylko z instrukcji switch a pętla foreach wykonuje się po raz kolejny dla pozostałych namespaceów. Aby temu zaradzić należy przy instrukcji break określić wyjście z dwóch pętli. Patch: --- Base (BASE) +++ Locally Modified (Based On LOCAL) @@ -327,25 +327,25 @@ $modelDirectory = $this->path . ‘/frontend/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $controller; - break; + break 2; } if (is_file($this->path . ‘/frontend/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/frontend/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $model; - break; + break 2; } if (is_file($this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $controller; - break; + break 2; } if (is_file($this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $model; - break; + break 2; } break; case 1: @@ -353,25 +353,25 @@ $modelDirectory = $this->path . ‘/admin/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $controller; - break; + break 2; } if (is_file($this->path . ‘/admin/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/admin/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $model; - break; + break 2; } if (is_file($this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($controller) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $controller; - break; + break 2; } if (is_file($this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’ . strtolower($model) . ‘.php’)){ $modelDirectory = $this->path . ‘/super/’ . $namespace . ‘/’ . strtolower($model) . ‘/model/’; $modelFile = $modelDirectory . strtolower($model) . ‘.php’; $modeDirectory = $model; - break; + break 2; } } }

