User Code List
PHP
---New Snippet
---New Snippet
---Symfony
------Tworzenie projektu
---------New Snippet
------Doctrine zamiast Propel
------często używane itp
---SVN
------SVN tortoise-nowy proj
------New Snippet
------Z tutoriala jobeet
---Yii
------1. Szkielet aplikacji
------2. Yiic na skróty
------3. Ustawienia bazy danych
------4. Scaffolding, CRUD, model tabeli db
------5. Uwierzytalenianie
------6. Model, rules()
------7. Model, safeAttributes()
------8. Model, relations()
------9. Kontroler, kontrola dostępu
------10. Model, zapisywanie, pobieranie elementów
------11. Formularze, budowa, przetwarzanie
------12. Szablony, widoki, partiale
------13. Themes, layouts
------ 5.1. Tworzenie widgetu logowania
------14. Ściąga, często używane itp
------15. Jak wykonać stronicowanie danych (pager)
------16. AJAX, aktualizowanie tresci po kliknieciu w button
---------New Snippet
------17. AJAX, aktualizowanie tresci po kliknieciu w cokolwiek
Apache
---Wirtualny host dla projektu
New Snippet
---New Snippet
 
 
14. Ściąga, często używane itp
 

Ściąga, często używane itp

Wyświetla nazwę aktualnie zalogowanego użytkownika

Yii::app()->user->name;

Wyświetla id aktualnie zalogowanego użytkownika

Yii::app()->user->id;

Zwraca true jezeli użytkownik jest gościem - nie jest zalogowany:

Yii::app()->user->isGuest

Wylogowuje użytkownika:

Yii::app()->user->logout();

Katalog bazowy przechowujący kontrolery. Np: C:xampp2htdocsyiiblogplusprotectedcontrollers.

Poniższy przykład wraz z separatorem ścieżek wyświetli np to: C:xampp2htdocsyiiblogplusprotectedcontrollersSiteController.php

Yii::app()->controllerPath . DIRECTORY_SEPARATOR . 'SiteController.php';

Katalog bazowy pliku z layoutem dla obecnego widoku. Np: C:xampp2htdocsyiiblogplusprotectedviewslayouts

Yii::app()->layoutPath . DIRECTORY_SEPARATOR . 'main.php';

Katalog bazowy aplikacji. Np: C:xampp2htdocsyiiblogplusprotected

Yii::app()->basePath;

Url bazowy aplikacji. Np: /yiiblogplus

Yii::app()->baseUrl

Adres bazowy aplikacji. Np: /yiiblogplus/index.php:

Yii::app()->homeUrl

Przenosi do głównej strony serwisu:

$this->redirect(Yii::app()->homeUrl);

Przenosi do akcji określonego kontrolera z parametrem:

$this->redirect(array('kontroler/akcja','id'=>'dodatkowy_param'));

Odświeża widok akcji aktualnego kontrolera:

$this->refresh();

Generuje adres url. Np: /yiiblogplus/index.php?r=register/activate&zmienna=wartosc

$this->createUrl('register/activate', array('zmienna'=>'wartosc'))

Generuje pełny adres url gotowy np do wysłania w wiadomosci e-mail.

Np: http://localhost/yiiblogplus/index.php?r=register/activate&zm=wartosc

"http://{$_SERVER['SERVER_NAME']}".$this->createUrl('register/activate', array('zm'=>'wartosc'))

Dostęp do katalogu używanego thema i jego zasobów:

Yii::app()->theme->baseUrl.'/css/main.css'

Osadzanie pliku CSS w pliku layoutu. Wykonujemy oczywiście w bloku <head>:

<?php echo CHtml::cssFile(Yii::app()->theme->baseUrl.'/css/main.css'); ?>

Dostęp do zmiennych zdefiniowanych w konfiguracji aplikacji. Params jest tablicą. W tym przypadku zmienna 'params' zawiera w sobie drugą tablicę o nazwie 'smtp'. Posługując się poniższym wyrażeniem odczytujemy wartość 'host' z tablicy 'smtp':

Yii::app()->params['smtp']['host'];

Taka konfiguracja w pliku konfiguracyjnym 'main.php' ładowana jest następująco:

'params'=>array(

'smtp'=>require(dirname(__FILE__).'/smtp.php'),

'view'=>require(dirname(__FILE__).'/view.php'),

),

Nazwa aplikacji wczytana z pliku konfiguracyjnego.

Yii::app()->name

Osadzanie widoku częściowego (partial) w widoku i przekazanie do niego zmiennych:

<?php $this->renderPartial('_form', array(

'post'=>$post,

'update'=>false,

)); ?>

Dekoduje znaki specjalne na encje tak, że sotają wyświetlone na stronie a nie interpretowane:

CHtml::encode($user->description);

Jak zbudować link graficzny:

CHtml::link(CHtml::image('img/link.gif','AlternateText'), '#', array('onclick'=>'clientSide()'))

Jak bez formularza spowodować wysłanie strony jako _POST po kliknięciu na link:

CHtml::linkButton('Wyloguj',array(

'submit'=>'',

'params'=>array('command'=>'logout') )); ?>

A w akcji (lub np init()) kontrolera:

if(isset($_POST['command']) && $_POST['command']==='logout')

{

. . .

}

Jak dynamicznie (w kodzie kontrolera) dodawać pliki css i js:

public function init() //init to funkcja kontrolera

{

$uri = 'path to your controller-specific css';

Yii::app()->clientScript->registerCssFile($uri, 'screen, projection');

return parent::init();

}

Podobne: registerScript(); registerScriptFile(); registerCss()

Więcej na ten temat pod tym linkiem:

http://www.yiiframework.com/forum/index.php?/topic/4441-automagical-inclusion-of-css-file/

Jak sprawdzić czy wywołanie strony (request) jest POST (po wysłaniu formularza):

Yii::app()->request->isPostRequest

 
Sub-Article List