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; } } }



Komentarze

Dodaj swój komentarz