No czyli tak jak pokazalem jest good.
Dzis sprobuje to zaimplementowac potestuje i jak cos zwroce sie do was ogolnie macie +

.
Witam zrobile juz redirect() i forward() jednak mam jeden problem z forward().
Bazujac sie na przykladzie @batman mam komponents upload ktory jest ladowany.
Jego kontroler ma defaultowa funckje Index() ktora sie wywoluje sie na samym poczatku(chyba ze w url jest podana inna metoda do wykonania) ma ona za zadanie wyswietlic formularz uploadu i po submitowaniu forma przekierowac na:
Cytat
index.php/Home,Index,Upload
I wszystko dziala pliki sue uploaduja.
Jednak teraz chce zrobic tak ze trzeba byc zalogowanym by uploadowac pliki w przeciwnym wypadku pokazuje laduje komponent Auth za pomoca forward gdy user sie zaloguje to widzi zamiast Logowania form do upload'u:
Tak wyglada funkcja Index() z kontrolera komponentu Uploader:
public function Index() {
if($this -> auth -> isLogged()) {
$user = $this -> auth -> GetUserType();
return $this -> view -> Layout('Uploading', 'component', $user);
}
else {
return $this -> Forward('Auth'); // gdy nie zalogowany wlaczam komponent Auth z funkcja Index()
}
}
A tu implementacja Forward()
public function Forward($ctrl, $action = 'Index') {
require_once(DIR_PLUGINS_CTRL.$ctrl.'.php');
}
else if(file_exists(DIR_COMPONENTS_CTRL
.$ctrl.'.php')) {
require_once(DIR_COMPONENTS_CTRL.$ctrl.'.php');
}
if(class_exists($ctrl)) {
$forwardObj = new $ctrl();
if(method_exists($forwardObj, $action)) {
return $forwardObj -> $action();
}
}
return false;
}
Ale jest jedno ale wszystko dziala tylko GDY na stronie mam tak czy siak zaladowany komponent Auth gdy go nie ma owszem Form logowania sie pokazuje ale jak juz kilkamy na Login i zostajemy przekierowani na:
Cytat
index.php/Home,Index,Auth
To nas nie loguje nic sie nie dzieje.
Gdy komponent logowania jest zawsze i do tego w komponencie uploadu gdy ktos nie jest zalogowany widac formularz logowania moge sie zalogowac poprzez samo komponent Auth jak i poprzez form wygenerowany przez Upload.
Gdy usune ze strony komponent Auth widzimy formularz ale sama akcja logowania nie dziala.
http://marcio.ekmll.com/index.phpTutaj jest testowa strona gdzie testuje wszystko z mojego fw wiec nie patrzcie na wyglad poprostu zrobilem przyklad by mozna bylo zobaczyc online co jest nie tak.
Na stronie mamy komponent Auth(1 formularz), i komponent Upload(2 formularz pokazuje sie on bo nie jestesmy zalogowani).
Zalogowac mozna sie poprzez obydwa formularze i zobaczymy upload jednak gdy usune pierwszy formularz logowania(komponent Auth) jest form ale nie da sie zalogowac.
Co jest zle.
P.S ale dlugi post ale musialem wszystko dokladnie opisac.
P.S2
Zalogujcie sie za pomoca login: marcio i haslo: marcioOK rozwiazalem wszystko.
Poniewaz moj system wczytuje komponenty/pluginy z bazy i wykonuje na nich odpowiednie metody robiac foward() wczyta sie pierwsza metoda jesli jednak w systemie dany komponent nigdzie nie zostal zaladowany druga metoda ktora jest np w method="" atrybutu form sie nie wykona bo nie znajdzie zadnego komponentu z taka metoda.
Wiec mam 3 rozwiazania mozna jest stosowac wszystkie zaleznie od sytuacji:
1)Gdy komponent jest zawsze ladowany np logowanie wydaje mi sie ze jest prawie zawsze albo form albo panle po zalogowaniu
Robimy tak jak pokazalem wyzej:
public function Index() {
if($this -> auth -> isLogged()) {
$user = $this -> auth -> GetUserType();
$html = $this -> view -> Layout('Uploading', 'component', $user);
}
else {
return $this -> Forward('Auth'); //Wczytujemy komponent Auth z metoda Index
}
}
2)Gdy komponent nie jest zawsze wczytywany lub w ogole to robimy to na 2 sposoby:
public function Index() {
if($this -> auth -> isLogged()) {
$user = $this -> auth -> GetUserType();
$html = $this -> view -> Layout('Uploading', 'component', $user);
}
else {
$html = $this -> Forward('Auth'); //Wczytujemy komponent Auth z metoda Index
if(isset($_POST['log'])) { //Jesli wyslano form logowania
$this -> Forward('Auth', 'Auth'); // wykonujemy akcje logowania
}
}
return $html;
}
Albo mozna tak zaimplementowac metode Index/Auth by wyswietlala form i zarazem logowala zaleznie od tego czy ktos jest zalogowany lub nie jak nie jest wyswietla form i pootem loguje jesli go wyslano jak jest zalogowany albo panel albo nic

Moze troche przekombinowane ale wazne ze dziala i idea jest taka sama jak w innych fw.