Moduły

Witam, z uwagi że znalazłem w końcu czas i chęci to usiadłem do Yii.

Na starcie posłużyłem się modułem http://www.yiiframework.com/extension/yii-user

Moduł wrzuciłem do folderu blog/protected/modules/user jak mówiła instrukcja instalacji, uzupełniłem pliki confing wedle instrukcji i mam dziwny problem mianowicie.

Niestety nie wykonałem polecenia w konsoli, mimo wielkich starań nie umiem odnaleźć konsoli w yii.

Z uwagi na to ze moduł znajduje się w podfolderze: modules/user mam problem z layouts/mine.php. Posłużyłem się tutaj opcją kopiuj wklej do testów ale raczej tak nie powinno być. Jak domyślnie wczytywać layouts do modułu?

Druga sprawa tyczy się samych odsyłaczy. Ponieważ w module nie było żadnego bocznego menu trzeba było je samemu złożyć no więc zabrałem się za boczne menu odpowiadający plik to layouts/column2.php. Dobrałem sie do pliku po ścieżce przekierowanień i urozmaiciłęm go tak:




<ul>

	<li><?php echo CHtml::link('Create New Post',array('post/create')); ?></li>

	<li><?php echo CHtml::link('Manage Posts',array('post/admin')); ?></li>

	<li><?php echo CHtml::link('Approve Comments',array('comment/index')) . ' (' . Comment::model()->pendingCommentCount . ')'; ?></li>

	<li><?php echo CHtml::link('Logout',array('site/logout')); ?></li>

	<li><hr></li>

	<li><?php echo CHtml::link('Lista użytkowników',array('user/admin/index')); ?></li>

	<li><?php echo CHtml::link('Nowy użytkownik',array('user/admin/create')); ?></li>

	<li><?php echo CHtml::link('Pola profilowe',array('user/profileField/')); ?></li>

	<li><?php echo CHtml::link('Nowe pole profilowe',array('user/profileField/create')); ?></li>

</ul>



Niestety istnieje olbrzymi problem, pewno spowodowany tym ze coś źle osadziłem lub zainstalowałem. Gdy jesteśmy na stronie domyślnej bloga czyli index.php odsyłacze działają poprawnie. Lecz gdy wejdę w jakaś stronę moduły odsyłacze się psują tzn odnoszą się do katalogu nadrzędnego a ja chcę je cofać tworzy się takie coś: index.php/user/post/admin.

Da się to zrobić dublując ten plik i wywołując go zależnie od miejsca ale raczej nie tak miało być.

Robię gdzieś błędy czy ktoś pomógł by mi zlokalizować błąd?

Z góry dziękuje i pozdrawiam.

Czy jest dobra dusza która by mi wyjaśniła filozofię tych modułów.

2 problem poprawiłem dodając / do odnośników.

Dalej pozostaje problem z layouts.

Chodzi ci o punkt Change your config console? Po prostu zmodyfikuj plik /protected/config/console.php.

Pokaż swój /protected/config/main.php…

Witam serdecznie,

Ad 1.

Layout danego kontrolera jest przechowywany w parametrze layout klasy CController. Żeby ustawić swój layout w danym kontrolerze wystarczy na początku klasy kontrolera ustawić mu parametr $layout = ‘nasza/sciezka/do/layoutu’.




<?php

class NaszKontroler extends CController {

public $layout = 'nasza/sciezka/do/layoutu';

}



Należy przy tym pamiętać, że jeżeli jesteśmy w module (np. user) to wszystkie ścieżki (w kontrolerach, layoutach itd.) będą się odnosiły do tego modułu. Aby wskazać, że chcemy wywołać layout z głównego katalogu views musimy zapisać na początku dwa ścieżki dwa slashe np. $layout = ‘//nasza/sciezka/do/layoutu/w/glownym/katalogu/views/layouts/’

Mam nadzieję, że o to chodzi?