Baza modelek Glamour Models: Modelki, Fotomodelki, Hostessy

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


poniedziałek, 18 kwietnia 2011

Problem z mapą witryny w Google Narzędzia dla webmasterów

Jeśli otrzymasz taki komunikat błędu:

Napotkaliśmy błąd podczas próby dostępu do tej mapy witryny. Sprawdź, czy mapa witryny jest zgodna z naszymi wymogami i można do niej uzyskać dostęp w podanej lokalizacji, a następnie prześlij ponownie.

i masz pewność, że mapa witryny jest dobrze wygenerowana, to wyślij na serwer plik robots.txt np. z taką zawartością:
User-agent: *
Allow: /  
Powinno być już OK.

środa, 16 marca 2011

Przenoszenie elementów między listami: drag&drop, zaznacz-kliknij-przenieś

Przenoszenie elementów między dwoma listami dwoma sposobami na raz:
-        za pomocą drag&drop,
-        poprzez zaznaczenie elementu i przeniesienie przyciskiem.

Zrobimy to przy pomocy jQuery UI:
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>

czwartek, 3 marca 2011

Dostęp sieci w VirtualBox

Mam Windows XP, maszynę wirtualną z Ubuntu.

Pierwsza karta sieciowa VirtualBox jest ustawiona na NAT, dzięki czemu z VB jest dostęp do Internetu.
W Ubuntu mam postawiony serwer WWW, jednak nie można się odwołać do niego przez IP. Zatem należy uaktywnić drugą kartę sieciową typu host-only, jednak teraz nie ma dostępu do internetu.
Rozwiązanie jest takie, aby dwie pierwsze karty ustawić na NAT, a trzecią na host-only.
Wtedy Ubuntu widzi dwie karty: pierwsza łączy się z Internetem, dzięki drugiej jest dostęp w Windows.

środa, 9 lutego 2011

Trójkolumnowy układ strony

Układ trójkolumnowy strony przy pomocy div’ów:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>3 kolumy</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
     * {
          margin:0px;
          padding:0px;
     }
     #wrapper {
          width:1000px;
          margin: 0px auto;
     }
     #left {
          float: left;
          background-color: red;
          width: 200px;
     }
     #right {
          float: right;
          background-color: yellow;
          width: 200px;
     }
     #content {
          background-color: pink;
     }
</style>
</head>
<body>
<div id="wrapper">
     <div id="left">
          left
     </div>
     <div id="right">
          right
     </div>
     <div id="content">
          content
     </div>
</div>
</body>
</html>

Ważna jest kolejność div’ów - najpierw lewy, potem prawy, na końcu umieszczamy środkowy - wtedy szerokość środkowej części automatycznie się dopasuje.

Dodatkowo możemy ustawić szerokość naszej strony na np. 1000px oraz wyśrodkować przez margin: 0px auto (górny i dolny margines na 0px, lewy i prawy automatycznie ustawiany przez przeglądarkę).

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