Baza modelek Glamour Models: Modelki, Fotomodelki, Hostessy
Pokazywanie postów oznaczonych etykietą Kohana. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Kohana. Pokaż wszystkie posty

wtorek, 21 czerwca 2011

Jak korzystać z innego configu pagincaji w KO3

Załóżmy, że w pliku config/pagination.php mamy:

<?php defined('SYSPATH') or die('No direct script access.');
return array(
  'default' => array(
    'current_page'      => array('source' => 'route', 'key' => 'id'),
    'total_items'       => 0,
    'items_per_page'    => 10,
    'view'              => 'pagination/floating',
    'auto_hide'         => true,
    'first_page_in_url' => false,
  ),
  'other' => array(
    'current_page'      => array('source' => 'route', 'key' => 'id'),
    'total_items'       => 0,
    'items_per_page'    => 50,
    'view'              => 'pagination/basic',
    'auto_hide'         => false,
    'first_page_in_url' => true,
  ),
);


Zwykle korzystamy z ustawienia 'default':

$gallery_pagination = Pagination::factory(array(
            'total_items' => $gallery->countAll(),
            ));
           

Jeśli chcemy skorzystać z innych ustawień, nie wpisując wszystkich ustawień za każdym razem, gdy tworzymy paginację, możemy przekazać w tablicy w metodzie factory indeks 'group'. Oczywiście można użyć innych opcji, które nadpiszą te z configu:

$gallery_pagination = Pagination::factory(array(
            'group' => 'other',
            'total_items' => $gallery->countAll(),
            ));


Można sprawdzić, co się wyświetli:

echo $gallery_pagination->render();


wtorek, 24 maja 2011

Obsługa błędu 404 w Kohana 3.0 - plik bootstrap.php


Kod należy umieścić w pliku bootstrap.php:
    $request = Request::instance();
    try {
         $request->execute();
    } catch (Exception $e) {
        Kohana::$log->add(Kohana::ERROR, Kohana::exception_text($e));
      
        if(Kohana::$environment == Kohana::PRODUCTION){
            $request->status = 404;
            $request->response = View::factory('error/404');
        }
        else{
            throw $e;
        }      
    }

    $request->send_headers();
    echo $request->response;

Oczywiście, dla tego przypadku należy dodać plik 404.php w katalogu views/error.

W zależności od ustawienia

Kohana::$environment = Kohana::DEVELOPMENT;
lub
Kohana::$environment = Kohana::PRODUCTION;

wyświetlana jest strona błędu Kohany lub widok z pliku 404.php


wtorek, 8 lutego 2011

Renderowanie obrazków w Kohana 3

Aby pokazać obrazek w locie (np. miniaturka, ze znakiem wodnym), w PHP tworzymy obrazek, podajemy typ mime oraz wysyłamy do przeglądarki:
header('Content-type: image/jpeg');
$img = imagecreatefromjpeg('plik.jpeg');
imagejpeg($img);
imagedestroy($img);

W Kohana wygląda to tak:
W kontrolerze np. obrazek.php dodajemy akcję action_render(). Podobnie, jak w czystym PHP, musimy utworzyć obrazek z pliku, podać typ wysyłanych danych, wysłać je w nagłówkach oraz zwrócić wyrenderowany obrazek:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Obrazek extends Controller {
        public function action_render(){
            $this->request->headers['Content-type']='image/jpeg';
            $this->request->send_headers();
            $img=Image::factory('media/images/obraz.jpg');
            $this->request->response=$img->render('jpg');
           
        }
}

Wywołujemy następująco:
<?php echo Html::image('obrazek/render'); ?>

W ten sposób można również ukryć ścieżkę do zdjęć.
Oczywiście można przekazać do akcji dowolny obrazek:
<?php echo Html::image('obrazek/render/' . $nazwa_pliku); ?>

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Obrazek extends Controller {
        public function action_render(){
            $nazwa_pliku=$this->request->param('id'); //zależnie od ustawień w bootstrap.php
            $this->request->headers['Content-type']='image/jpeg';
            $this->request->send_headers();
            $img=Image::factory('upload/' . $nazwa_pliku);
            $this->request->response=$img->render('jpg');
        }
}



poniedziałek, 7 lutego 2011

Swift Mailer jako moduł w Kohana 3

Krótki tutorial na temat integracji Swift Mailer jako modułu Kohana 3.
Najpierw należy utworzyć katalogi i pliki:
/modules/swiftmailer
/modules/swiftmailer/init.php
/modules/swiftmailer/classes

Skopiuj do katalogu /modules/swiftmailer/classes/  najnowszą wersję Swift Mailer.
W pliku /modules/swiftmailer/init.php umieść następującą linię:
<?php
require Kohana::find_file('classes', 'Swift-4.0.6/lib/swift_required');

Następnie do pliku bootstrap.php dołącz moduł:
'swiftmailer'  => MODPATH.'swiftmailer',


Teraz wystarczy utworzyć obiekty Swift_Message, Swift_SmtpTransport, Swift_Mailer oraz podać dane połączenia, 

$message=new Swift_Message();
$message->setSubject('Temat');
$message->setFrom(array('od_email@od_email.pl'=>'Admin'));
$message->setTo(array('do_email@ do_email.pl'));
$message->setBody('Treść');

$transport=new Swift_SmtpTransport();
$transport->setHost('host');
$transport->setUsername('user');
$transport->setPassword('password');

$mailer=new Swift_Mailer($transport);

$result=$mailer->send($message);


piątek, 21 stycznia 2011

Kohana 3 - spolszczenie

Dziś pokażę, jak wyświetlać polskie komunikaty.
Na początku edytujemy plik bootstrap.php. Należy dodać nową linijkę:
I18n::lang('pl');

Można ją dopisać zaraz po autoładowaniu klas:
spl_autoload_register(array('Kohana', 'auto_load'));

Następnie zamienić te linijki:
date_default_timezone_set('America/Chicago');
setlocale(LC_ALL, 'en_US.utf-8');

na:
date_default_timezone_set('Europe/Warsaw');
setlocale(LC_ALL, 'pl_PL.utf-8');

Następnie tworzymy plik /application/i18n/pl.php z zawartością:
<?php defined('SYSPATH') or die('No direct script access.');

return array
(
     'Polish' => 'Polski',
     'Hello, world!' => 'Witaj świecie!',
     'First' => 'Pierwsza',
     'Last' => 'Ostatnia',
     'Previous' => 'Poprzednia',
     'Next' => 'Następna',
);

Teraz, wyświetlając paginację mamy polskie wyrazy zamiast angielskich.
Działa to tak:
w odpowiednich plikach (np. w widoku paginacji /module/pagination/views/pagination/basic.php) widać polecenia typ:
<?php echo __('First') ?>
<?php echo __('Previous') ?>
<?php echo __('Next') ?>
<?php echo __('Last') ?>

Dzięki funkcji __ (2 podkreślniki) Kohana wie, że ma korzystać z plików w katalogu i18n i zamieniać je zgodnie z wzorcami.
Mam nadzieję, że wszystko jest zrozumiałe.

czwartek, 13 stycznia 2011

Wiele paginacji w Kohana 3

Pokażę, jak korzystać z kilku paginacji w Kohna.
Załóżmy, że mamy stronę foto galerii, na której są miniatury, a pod nimi komentarze.
Chcemy, aby przewijanie stron z miniaturami i przewijanie stron z komentarzami było niezależne, np. przeglądamy piątą stronę ze zdjęciami i dziesiątą z komentarzami i nie chcemy, aby przejście do kolejnej strony z komentarzami spowodowało przejście do pierwszej strony ze zdjęciami.