
Kontroler Default:
class Controller_Default extends Controller_Template { public $template = 'default'; //domyslny widok public function __construct(Request $request, Response $response) { parent::__construct($request, $response); } //konstruktor - tutaj nic nie robi, mozna wywalic public function before() { parent::before(); if ($this->auto_render) { // Initialize empty values - ktore wypelnia sie w index i after //dlaczego tu a nie w index? //bo tutaj sa ladowane automatycznie przy kazdej metodzie (jak jest auto render) $this->template->title = ''; $this->template->description = ''; $this->template->content = ''; $this->template->top_tab = ''; } } public function after() { if ($this->auto_render) { 'media/css/templatemo_style.css' => 'screen', ); 'media/js/jquery-1.5.1.min.js', ); $this->template->description='Tu jest opis stronki który powinien mieć długość do 170 znaków.'; //tu wsadza sie zmienne ktore pasuja do kazdej metody tego kontrolera } parent::after(); } public function action_index() { $this->template->title = __('Home'); //taki zapis gdy korzystasz z i18n $this->template->content='home'; $this->template->top_tab='home'; } }
Kontroler User:
class Controller_User extends Controller_Default { //dziedziczenie z Controller_Template public $template = 'user/main'; //definiowanie zmiennej do obsługi widoków public function action_index(){ $auth = Auth::instance(); //utworzenie instancji obiektu Auth $auth->get_user(); //pobieranie danych o zalogowanym użytkowniku if ($auth->logged_in('login')){ //sprawdzanie czy użytkownik jest zalogowany //jeśli jest to dopuszczamy (to sekcja dla zalogowanych) $this->template->wiadomosc = "Witaj $auth->username!<br />Jesteś zalogowany."; //i cała reszta kodu dla autoryzowanego użytkownika }else{ //jeśli nie jest zalogowany, przekierowujemy do logowania $this->request->redirect('user/login'); //jeśli nie, przekierowujemy do logowania } } public function action_register(){ $this->template = 'user/register'; //załadowanie widoku $auth = Auth::instance(); //utworzenie instancji obiektu Auth if ($auth->logged_in('login')){ //sprawdzanie czy użytkownik jest zalogowany $this->request->redirect('user'); //jeśli tak, przekierowujemy do maina }else{ if($_POST){ //sprawdzanie czy dane są przesyłane POSTem $walidacja = new Validate($_POST); //tworzenie obiektu walidacji $walidacja->rule('login', 'not_empty') ->rule('login', 'alpha_dash') ->rule('email', 'not_empty') ->rule('haslo', 'not_empty') ->rule('email', 'email'); if($walidacja->check()){ $user = ORM::factory('user'); //tworzenie obiektu ORM z użyciem tabeli users $user->username = $_POST['login']; //przypisanie pola z formularza do nazwy kolumny w tabeli $user->email = $_POST['email']; $user->password = $_POST['haslo']; //instrukcja warunkowa/zapis danych użytkownika/przypisanie roli "login" $this->template->sukces = 'Dziękujemy za rejestrację!'; //przekazanie zmiennej $sukces do widoku }else{ $this->template->fail = 'Nie udało się dodać użytkownika!'; //przekazanie zmiennej $fail do widoku } }else{ $this->template->fail = 'Uzupełnij poprawnie formularz rejestracyjny!'; } } } } public function action_login(){ $this->template ='user/login'; $auth = Auth::instance(); //utworzenie instancji obiektu Auth if ($auth->logged_in('login')){ //sprawdzanie czy użytkownik jest zalogowany $this->request->redirect('user'); //jeśli jest, przekierowujemy do user }else{ if($_POST){ $walidacja = new Validate($_POST); //tworzenie obiektu walidacji $walidacja->rule('login', 'not_empty') ->rule('login', 'alpha_dash') ->rule('haslo', 'not_empty'); if($walidacja->check()){ //jeśli walidacja OK to zaloguj $auth->login($_POST['login'], $_POST['haslo'], FALSE); //logowanie użytkownika $this->request->redirect('user'); //przekierowanie po zalogowaniu do kontrolera user }else{ $this->template->fail = 'Uzupełnij poprawnie formularz!'; } } } } public function action_logout(){ $this->template = View::factory('user/login'); $auth = Auth::instance(); //utworzenie instancji obiektu Auth if ($auth->logged_in('login')){ //sprawdzanie czy użytkownik jest zalogowany if($auth->logout(TRUE)){ //jeśli jest, to go wylogowujemy $this->template->sukces = 'Pomyślnie wylogowano!'; }else{ $this->request->redirect('user/login'); //przekierowujemy do logowania } }else{ //jeśli nie jest zalogowany przekierowujemy do logowania $this->request->redirect('user/login'); } } } ?>
W kontrolerze default:
Wywala błąd:
Cytat
Trying to get property of non-object
template to obiekt, template->styles to tablica, $styles to tablica.
Wszelkie inne sugestie co do kodu również mile widziane, nie wszystko jeszcze rozumiem do końca
